数据库设计模型

时间:2012-02-09 17:54:08

标签: database database-design relational-database foreign-key-relationship

假设我们有3个表:汽车,人,公司。我们希望汽车的所有者是一个人(以及谁)或一个公司(哪个是)。 Cars表的基本结构是:Car_id,Car_model,Owner_id。这是最好的方法吗?

1 个答案:

答案 0 :(得分:1)

阅读你的问题我看到两种方法:

  • 第一个是继承:你有一个car表,还有一个ownerowner可能是具有特定字段和关系的personcompany

它们是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

然后在数据库中创建规则以强制您的预期行为。例如,您可以保持与触发器的一致性。