Разработка базы данных для одинаковых предметов с различными свойствами - PullRequest
0 голосов
/ 07 апреля 2020

Я только вхожу в проектирование базы данных и структуры. Я столкнулся с проблемой сейчас. Допустим, я хочу иметь базу данных билетов, есть три типа билетов:

Ticket # 1

 ---------------------------
| id     creation_time  .... |
 ---------------------------


Ticket # 2
 ------------------------------------------------
| id     creation_time    auto_closure_time .... |
 ------------------------------------------------


Билет № 3
 -------------------------
| id       permanent .... |
 -------------------------


Типы данных:

creation_time, auto_closure_time - datetime

постоянный - логический


Билет № 3: Время создания не указано для определенных c причин

Четыре точки (....) означают некоторые другие столбцы, в которых есть все заявки

Мой вопрос : Должен ли я разделить эти таблицы или объединить их в одну таблицу, которая будет выглядеть следующим образом?

 -----------------------------------------------------------
| id        creation_time   auto_closure_time     permanent | 
| 1              xyz               NULL               0     |
| 2              xyz               xyz                0     |
| 3              NULL              NULL               1     |
 -----------------------------------------------------------

ID 1 представляет билет № 1 и т. Д.

В чем могут быть преимущества разделенные таблицы и объединенная?

Спасибо за все ответы, ценим ваше время.

1 Ответ

1 голос
/ 07 апреля 2020

Я бы имел одну таблицу только с creation_time и auto_closure_time и использовал бы «невозможное» значение для обозначения постоянства. Это может быть начало времени для создания или конец времени для закрытия (как определено). Билеты типа 1, как вы изобразили, просто получают NULL auto_closure_time.

Ответ на вопрос «сколько таблиц» определяется общностью свойств представленных объектов. В вашем случае, единственная отличительная особенность 3-х видов билетов - истекает ли срок действия.

...