具有不同属性的相同项目的数据库设计

Database design for same items with various properties

我刚开始接触数据库设计和结构。我现在面临一个问题。假设我想要一个票数据库,共有三种类型的票:

1 号票

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


票 #2

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


票 #3

 -------------------------
| id       permanent .... |
 -------------------------


数据类型:

creation_time, auto_closure_time - 日期时间

永久 - 布尔值


工单 #3 没有 creation_time,具体原因

四个点 (....) 表示其他一些包含所有门票的列

我的问题是:我应该将这些 table 分开,还是将它们合并成一个 table,看起来像这样?

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

ID 1 代表 Ticket #1 等等。

分开的 table 和合并的有什么好处?

感谢大家的回答,感谢您的宝贵时间。

我会有一个 table 只有 creation_timeauto_closure_time,并使用 "impossible" 值来表示永久性。这可能是创建时间的开始,也可能是关闭时间的结束(无论如何定义)。正如您所描述的,类型 1 的票证只是得到一个 NULL auto_closure_time

"how many tables" 的答案取决于所表示实体的属性的共性。在您的情况下,这 3 种门票的唯一区别在于它是否过期。