SQL数据库设计:只有主键的父表的错误做法?
我的数据库保存两种类型的订单——内部订单和外部订单。由于它们都是订单类型,我希望它们共享一个主键,它来自超级实体“RentOrder”。该设计如下所示: 我的问题是:SQL数据库设计:只有主键的父表的错误做法?,sql,database-design,relational-database,Sql,Database Design,Relational Database,我的数据库保存两种类型的订单——内部订单和外部订单。由于它们都是订单类型,我希望它们共享一个主键,它来自超级实体“RentOrder”。该设计如下所示: 我的问题是: 我的RentOrder表只包含一列,即主键“id”,这会被认为是不好的做法吗 ExternalRentOrder和InternalRentOrder有许多共同的字段(例如orderDate、rentStartDate、rentEndDate等)。显然,这些列可能位于父RentOrder表中。然而,这意味着我需要进行父子连接以获
谢谢你的时间。这不是不合理的。也就是说,我通常在表中有其他列,例如:
——插入了日期时间行createdAt
——谁创建了行createdBy
orderId
supplierId
orderDate
- 等等
InternalRentOrder
和/或ExternalRentOrder
关联,则单独的表非常有用
最后,类型列可能也会有所帮助。根据您使用的数据库,这可以更容易地确保两个表之间没有重复。@Ben123进一步到“type column”,方法是让RentOrder
将type column作为PK的一部分,然后其他两个表也有相同的,除此之外,它们的类型列都被检查约束为单个值。然后FK变成两列Id,键入toRentOrder