假设我们有3个表:汽车,人,公司。我们希望汽车的所有者是一个人(以及谁)或一个公司(哪个是)。 Cars表的基本结构是:Car_id,Car_model,Owner_id。这是最好的方法吗?
答案 0 :(得分:1)
阅读你的问题我看到两种方法:
car
表,还有一个owner
。 owner
可能是具有特定字段和关系的person
或company
。它们是implementing inheritance with standard SQL的几种策略,也是某些dbms供应商的特定策略。 Database Analyst应为每个domain of discourse和数据库品牌设计最佳解决方案。
car
表中定义两个外键。像这样:
car_company_owner int NULL references companies
car_person_owner int NULL references people
然后在数据库中创建规则以强制您的预期行为。例如,您可以保持与触发器的一致性。