关系数据库模型

时间:2012-01-18 22:58:00

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

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

3 个答案:

答案 0 :(得分:1)

如果您无法更改cars表的当前结构,则可以添加名为owners的新表,其中包含以下列:

number id - 唯一键
number owner_id - 这是实际的所有者ID char owner_type - 这是一个值,表明所有者是个人还是公司

然后,您需要与cars交叉引用owners,并查看owner_type的值,以确定从哪个表中获取您的所有者数据。

修改

忘记提及(相当重要):

cars表格中,使用owner_id列填充owners.id

答案 1 :(得分:0)

如何将Cars表中的另一个字段设置为“Owner_type_id”,以确定所有者是个人还是公司或任何其他东西。当然,您应该保留另一个表“Owner_Types”以使此方案起作用。

答案 2 :(得分:0)

正如Igby所说,你现有的结构远非理想,但如果你坚持使用它,一个选择就是拥有一个Owner表,其中owner_id来自{{1}表格以及Carperson_id,只需要填充其中一个。