【问题标题】:relational database model关系数据库模型
【发布时间】:2012-01-18 22:58:00
【问题描述】:

假设我们有三个表:Cars、People、Company。

我们希望车主是个人或公司。 Cars表的结构为:Car_id, Car_model, Owner_id

最好的方法是什么?

【问题讨论】:

  • 你能改变结构吗?你所拥有的远非理想。
  • 我的意思是您可以在cars 表中添加或更改列吗?

标签: database foreign-keys relational-database


【解决方案1】:

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

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

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

编辑

忘了提(相当重要):

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

【讨论】:

    【解决方案2】:

    如果在 Cars 表中有另一个字段作为“Owner_type_id”,它将确定所有者是个人还是公司或任何其他事物。当然,您应该保留另一个表“Owner_Types”以使这种情况正常工作。

    【讨论】:

      【解决方案3】:

      正如 Igby 所提到的,您现有的结构远非理想,但如果您坚持使用它,一种选择是拥有一个新的 Owner 表,其中包含来自 Car 表的 owner_id 以及person_idcompany_id,只需要填充其中一个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-19
        • 1970-01-01
        • 2013-12-25
        相关资源
        最近更新 更多