SQL 数据库设计:父 table 只有主键的不良做法?

SQL Database Design: Bad practice to have parent table with only primary key?

我的数据库包含两种类型的订单 - 内部订单和外部订单。因为它们都是订单类型,所以我希望它们共享一个主键,该主键来自超实体 'RentOrder'。此设计如下图所示:

我的问题:

  1. 如果我的 RentOrder table 只包含一列,即主键 - 'id'?

    ,这会被认为是不好的做法吗
  2. ExternalRentOrder 和 InternalRentOrder 有许多共同的字段(例如 orderDate、rentStartDate、rentEndDate 等)。显然,这些列可能在父 RentOrder table 中。但是,这意味着我需要执行父子 JOIN 以获取所有 InternalRentOrder 或 ExternalRentOrder 数据。这似乎效率较低,性能是我的首要任务。有没有正确的方法来做到这一点,我目前的解决方案可以吗?

感谢您的宝贵时间。

不无道理。也就是说,我通常在 table 中还有其他列,例如:

  • createdAt -- 插入了日期时间行
  • createdBy -- 谁创建了行

此外,常用列也可能有帮助。你的情况:

  • orderId
  • supplierId
  • orderDate
  • 等等。

事实上,可能有相当多的共性,因此您可能会发现一个 table 就足够了。如果您想要 InternalRentOrder and/or 到 ExternalRentOrder.

的外键关系,单独的 table 会很有帮助

最后,类型列也可能有帮助。根据您使用的数据库,这可以更轻松地确保两个 table 之间没有重复。