2012-01-18 161 views
0

可以说我们有3个表:汽车,人,公司。 我们希望车主是一个人或一个公司。 Cars表的结构是:Car_id,Car_model,Owner_id 这是最好的方法吗?关系数据库模型

+1

你能改变结构吗?你有什么是远非理想。 – 2012-01-18 23:00:12

+0

你是什么意思? – stelios 2012-01-18 23:03:16

+0

我的意思是你允许添加或更改'cars'表中的列吗? – 2012-01-18 23:06:30

回答

0

如何在Cars表中添加另一个字段作为“Owner_type_id”,它将确定所有者是人或公司还是其他任何东西。当然,你应该保留另一个表“Owner_Types”来使这种情况起作用。

1

如果你不能改变车表的当前结构,那么您可以添加新的表称为owners有以下栏目:

numberID - 唯一的密钥
numberowner_id - - 这是店主的实际编号
charowner_type - 这是表示店主是人还是公司的价值

然后,您需要将参考号carsowners交叉,并查看owner_type的值以确定从哪个表获取您的所有者数据。

编辑

忘了提(相当重要):

cars表,填充owner_idowners.id列。

0

正如Igby提到,现有的结构很不理想,但如果你坚持了下来,一个选择是具有从Car表具有owner_id以及一个person_idcompany_idOwner表,其中只有一个需要填充。