Advertisement
KSlacker

BMS Tables

Oct 1st, 2024 (edited)
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. create table users
  2. (
  3.     id         text primary key,
  4.     login      text                                                    not null,
  5.     created_by text                                                    not null,
  6.     created_at timestamptz default timezone('utc', now())::timestamptz not null
  7. );
  8. create unique index unq_users_login on users (login);
  9. comment on table users is 'Пользователи';
  10. comment on column users.id is 'Идентификатор пользователя';
  11. comment on column users.login is 'Логин пользователя';
  12. comment on column users.created_by is 'Пользователь, добавивший запись';
  13. comment on column users.created_at is 'Дата и время создания записи';
  14.  
  15. create table events
  16. (
  17.     id             text primary key,
  18.     name           text,
  19.     status         text                                                    not null,
  20.     passcode       text                                                    not null,
  21.     start_datetime timestamptz                                             not null,
  22.     created_by     text                                                    not null,
  23.     created_at     timestamptz default timezone('utc', now())::timestamptz not null,
  24.     updated_by     text                                                    not null,
  25.     updated_at     timestamptz default timezone('utc', now())::timestamptz not null
  26. );
  27. comment on table events is 'Мероприятия';
  28. comment on column events.id is 'Идентификатор мероприятия';
  29. comment on column events.name is 'Название мероприятия';
  30. comment on column events.status is 'Статус мероприятия';
  31. comment on column events.passcode is 'Пригласительный код для мероприятия';
  32. comment on column events.start_datetime is 'Дата и время начала мероприятия';
  33. comment on column events.created_by is 'Создатель мероприятия';
  34. comment on column events.created_at is 'Дата и время создания мероприятия';
  35. comment on column events.updated_by is 'Пользователь, обновивший мероприятие';
  36. comment on column events.updated_at is 'Дата и время обновления мероприятия';
  37.  
  38. create table bars
  39. (
  40.     id         text primary key,
  41.     name       text                                                    not null,
  42.     address    text                                                    not null,
  43.     created_by text                                                    not null,
  44.     created_at timestamptz default timezone('utc', now())::timestamptz not null,
  45.     updated_by text                                                    not null,
  46.     updated_at timestamptz default timezone('utc', now())::timestamptz not null
  47. );
  48. create unique index unq_bars_name_address on bars (name, address);
  49. comment on table bars is 'Бары';
  50. comment on column bars.id is 'Идентификатор бара';
  51. comment on column bars.name is 'Название бара';
  52. comment on column bars.address is 'Адрес бара';
  53. comment on column bars.created_by is 'Пользователь, добавивший запись';
  54. comment on column bars.created_at is 'Дата и время создания записи';
  55. comment on column bars.updated_by is 'Пользователь, обновивший запись';
  56. comment on column bars.updated_at is 'Дата и время обновления записи';
  57.  
  58. create table event_participants
  59. (
  60.     id         text primary key,
  61.     event_id   text                                                    not null,
  62.     user_id    text                                                    not null,
  63.     joined_at  timestamptz default timezone('utc', now())::timestamptz not null,
  64.     created_by text                                                    not null,
  65.     created_at timestamptz default timezone('utc', now())::timestamptz not null,
  66.  
  67.     constraint fk_event_participants_events foreign key (event_id) references events (id)
  68. );
  69. create unique index unq_event_participants_event_id_user_id on event_participants (event_id, user_id);
  70. comment on table event_participants is 'Участники мероприятия';
  71. comment on column event_participants.id is 'Идентификатор записи';
  72. comment on column event_participants.event_id is 'Идентификатор мероприятия';
  73. comment on column event_participants.user_id is 'Идентификатор участника';
  74. comment on column event_participants.joined_at is 'Дата и время присоединения пользователя к мероприятию';
  75. comment on column event_participants.created_by is 'Пользователь, добавивший запись';
  76. comment on column event_participants.created_at is 'Дата и время создания записи';
  77.  
  78. create table event_bars
  79. (
  80.     id         text primary key,
  81.     event_id   text                                                    not null,
  82.     bar_id     text                                                    not null,
  83.     created_by text                                                    not null,
  84.     created_at timestamptz default timezone('utc', now())::timestamptz not null,
  85.  
  86.     constraint fk_event_bars_events foreign key (event_id) references events (id),
  87.     constraint fk_event_bars_bars foreign key (bar_id) references bars (id)
  88. );
  89. create unique index unq_event_bars_event_id_bar_id on event_bars (event_id, bar_id);
  90. comment on table event_bars is 'Бары в мероприятии';
  91. comment on column event_bars.id is 'Идентификатор записи';
  92. comment on column event_bars.event_id is 'Идентификатор события';
  93. comment on column event_bars.bar_id is 'Идентификатор бара';
  94. comment on column event_bars.created_by is 'Пользователь, добавивший запись';
  95. comment on column event_bars.created_at is 'Дата и время создания записи';
  96.  
  97. create table bar_reviews
  98. (
  99.     id         text primary key,
  100.     event_id   text                                                    not null,
  101.     bar_id     text                                                    not null,
  102.     score      integer                                                 not null,
  103.     comment    text,
  104.     created_by text                                                    not null,
  105.     created_at timestamptz default timezone('utc', now())::timestamptz not null,
  106.  
  107.     constraint fk_bar_reviews_events foreign key (event_id) references events (id),
  108.     constraint fk_bar_reviews_bars foreign key (bar_id) references bars (id)
  109. );
  110. create unique index unq_bar_reviews_event_id_bar_id_user_id on bar_reviews (event_id, bar_id, created_by);
  111. comment on table bar_reviews is 'Отзывы о баре';
  112. comment on column bar_reviews.id is 'Идентификатор отзыва';
  113. comment on column bar_reviews.event_id is 'Идентификатор мероприятия';
  114. comment on column bar_reviews.bar_id is 'Идентификатор бара';
  115. comment on column bar_reviews.score is 'Оценка по пятибалльной шкале';
  116. comment on column bar_reviews.comment is 'Текст отзыва';
  117. comment on column bar_reviews.created_by is 'Пользователь, оставивший отзыв';
  118. comment on column bar_reviews.created_at is 'Дата и время создания отзыва';
  119.  
  120. create table receipts
  121. (
  122.     id           text primary key,
  123.     receipt_link text                                                    not null,
  124.     created_by   text                                                    not null,
  125.     created_at   timestamptz default timezone('utc', now())::timestamptz not null
  126. );
  127. comment on table receipts is 'Чеки';
  128. comment on column receipts.id is 'Идентификатор чека';
  129. comment on column receipts.receipt_link is 'Ссылка на чек';
  130. comment on column receipts.created_at is 'Дата и время добавления чека';
  131. comment on column receipts.created_by is 'Пользователь, добавивший чек';
  132.  
  133. create table event_receipts
  134. (
  135.     id         text primary key,
  136.     event_id   text                                                    not null,
  137.     bar_id     text                                                    not null,
  138.     receipt_id text                                                    not null,
  139.     created_by text                                                    not null,
  140.     created_at timestamptz default timezone('utc', now())::timestamptz not null,
  141.  
  142.     constraint fk_event_receipts_events foreign key (event_id) references events (id),
  143.     constraint fk_event_receipts_bars foreign key (bar_id) references bars (id),
  144.     constraint fk_event_receipts_receipts foreign key (receipt_id) references receipts (id)
  145. );
  146. create unique index unq_event_receipts_receipt_id on event_receipts (receipt_id);
  147. comment on table event_receipts is 'Чеки мероприятия';
  148. comment on column event_receipts.id is 'Идентификатор записи';
  149. comment on column event_receipts.event_id is 'Идентификатор события';
  150. comment on column event_receipts.bar_id is 'Идентификатор бара';
  151. comment on column event_receipts.receipt_id is 'Идентификатор чека';
  152. comment on column event_receipts.created_by is 'Пользователь, добавивший запись';
  153. comment on column event_receipts.created_at is 'Дата и время создания записи';
  154.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement