繁体   English   中英

如何避免数据库设计中的循环引用?

[英]How can I avoid the circular reference in my database design?

我已经为运输管理程序设计了一个数据库。 一部分似乎还可以,但是我不确定如何将Package,Price和Version的组合存储到项目中,以避免循环引用。

只是对数据库的简短解释:一个包可以具有一对多的价格,并具有一对多的版本。 因此,价格与版本无关。 例如,如果您有2个版本,则它们具有相同的价格。 一个版本可以具有一对多的设备,并且一个设备可以属于多个版本。 用户筛选“软件包”并选择一个软件包,然后选择“版本”和“价格”,并将其存储在Project_Has_Packages中。 就像您在图片中看到的一样。 数据库设计图片

我的方法是,PackageName仅来自Package-Table,而VersionName和PriceName来自特定的表。 在Pricing-Table和Version-Table中,我需要PackageName来使条目唯一,因为它可能是您拥有“ Package1”,“ Version1”和“ Version2”以及“ Package2”和“ Version1”和“ Version2” ”。 版本不同是因为属于版本的设备不同。 如果我使VersionName唯一(“ ver1 Pack1”),则数据库将不再规范化。 有可能避免使用循环参考,如何更改设计以避免这种情况? 一整天都在思考,我再也看不见树木的树木了。

表设计的主要问题是您将真实数据(字符串)用作键。 这现在正在咬你,并且会继续这样做。

尝试为每个表和chiöd表中的相应外键添加一个自动递增的int ID作为主键。

相信带有圆形键的“问题”在那之后是微不足道的吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM