gpt4 book ai didi

database - 在关系数据库中表示受约束的多对多关系的最佳方式是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 22:19:01 24 4
gpt4 key购买 nike

我想建立一个多对多关系,约束条件是在任何时候只能链接关系每一方的一个实体或没有实体。

这个问题的一个很好的类比是汽车和 parking 场。有很多车和很多空间。一个空间可以容纳一辆车,也可以是空的;一辆车一次只能在一个空间内,或者没有空间(未停放)。

我们有一个 Cars 表和一个 Spaces 表(可能还有一个链接表)。 cars 表中的每一行代表汽车的一个唯一实例(具有牌照、所有者、型号等),Spaces 表中的每一行代表一个唯一的 parking 位(具有车库楼层、行和编号的地址)。在数据库中链接这些表并强制执行上述约束的最佳方法是什么?

(我正在使用 C#、NHibernate 和 Oracle。)

最佳答案

如果您不担心历史 - 即只担心“现在”,请执行以下操作:

create table parking (
car_id references car,
space_id references space,
unique car_id,
unique space_id
);

通过使汽车和空间引用唯一,您将每一侧限制为最多一个链接 - 即一辆汽车最多可以停在一个空间中,并且一个空间最多可以停放一辆汽车。

关于database - 在关系数据库中表示受约束的多对多关系的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6886934/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com