Facebook
From aandrieiev, 1 Year ago, written in SQL.
Embed
Download Paste or View Raw
Hits: 110
  1. CREATE DATABASE diary
  2. ;
  3.  
  4. CREATE SEQUENCE hibernate_sequence
  5. ;
  6.  
  7. CREATE TABLE lessons
  8. (
  9.         id serial NOT NULL
  10.                 CONSTRAINT lessons_pkey
  11.                         PRIMARY KEY,
  12.         KEY VARCHAR(50)
  13. )
  14. ;
  15.  
  16. CREATE UNIQUE INDEX lessons_key_uindex
  17.         ON lessons (KEY)
  18. ;
  19.  
  20. CREATE TABLE credentials
  21. (
  22.         id serial NOT NULL
  23.                 CONSTRAINT credentials_pkey
  24.                         PRIMARY KEY,
  25.         login VARCHAR(64) NOT NULL,
  26.         password VARCHAR(128) NOT NULL
  27. )
  28. ;
  29.  
  30. CREATE TABLE accounts
  31. (
  32.         id serial NOT NULL
  33.                 CONSTRAINT accounts_pkey
  34.                         PRIMARY KEY,
  35.         credential_id INTEGER NOT NULL
  36.                 CONSTRAINT accounts_credentials_id_fk
  37.                         REFERENCES credentials,
  38.         birth DATE,
  39.         name VARCHAR(64) NOT NULL,
  40.         surname VARCHAR(64),
  41.         INDEX VARCHAR(5) NOT NULL
  42. )
  43. ;
  44.  
  45. CREATE UNIQUE INDEX accounts_credentials_id_uindex
  46.         ON accounts (credential_id)
  47. ;
  48.  
  49. CREATE UNIQUE INDEX accounts_index_uindex
  50.         ON accounts (INDEX)
  51. ;
  52.  
  53. CREATE UNIQUE INDEX credentials_login_uindex
  54.         ON credentials (login)
  55. ;
  56.  
  57. CREATE TABLE sessions
  58. (
  59.         id serial NOT NULL
  60.                 CONSTRAINT sessions_pkey
  61.                         PRIMARY KEY,
  62.         credential_id INTEGER NOT NULL
  63.                 CONSTRAINT sessions_credentials_id_fk
  64.                         REFERENCES credentials,
  65.         expires_at TIMESTAMP,
  66.         token VARCHAR(255) NOT NULL
  67. )
  68. ;
  69.  
  70. CREATE UNIQUE INDEX sessions_credential_id_uindex
  71.         ON sessions (credential_id)
  72. ;
  73.  
  74. CREATE UNIQUE INDEX sessions_token_uindex
  75.         ON sessions (token)
  76. ;
  77.  
  78. CREATE TABLE marks
  79. (
  80.         id serial NOT NULL
  81.                 CONSTRAINT marks_pkey
  82.                         PRIMARY KEY,
  83.         account_id INTEGER NOT NULL
  84.                 CONSTRAINT marks_accounts_id_fk
  85.                         REFERENCES accounts,
  86.         lesson_id INTEGER NOT NULL
  87.                 CONSTRAINT marks_lessons_id_fk
  88.                         REFERENCES lessons,
  89.         VALUE INTEGER NOT NULL,
  90.         placed_timestamp TIMESTAMP NOT NULL
  91. )
  92. ;
  93.  
  94. CREATE TABLE groups
  95. (
  96.         id serial NOT NULL
  97.                 CONSTRAINT groups_pkey
  98.                         PRIMARY KEY,
  99.         name VARCHAR(32) NOT NULL,
  100.         description VARCHAR(255)
  101. )
  102. ;
  103.  
  104. CREATE UNIQUE INDEX groups_name_uindex
  105.         ON groups (name)
  106. ;
  107.  
  108. CREATE TABLE credentials_groups
  109. (
  110.         credential_id INTEGER NOT NULL
  111.                 CONSTRAINT credentials_groups_credentials_id_fk
  112.                         REFERENCES credentials,
  113.         group_id INTEGER NOT NULL
  114.                 CONSTRAINT credentials_groups_groups_id_fk
  115.                         REFERENCES groups,
  116.         CONSTRAINT credentials_groups_credential_id_group_id_pk
  117.                 PRIMARY KEY (credential_id, group_id)
  118. )
  119. ;
  120.  
  121.