我为运输管理程序设计了一个数据库。 其中一部分似乎没问题,但我不确定如何将包、价格和版本的组合存储到项目中,以避免循环引用。
简单介绍一下数据库: 一个包可以有一对多的价格和一对多的版本。因此价格与版本无关。例如。如果您有 2 个版本,则它们的价格相同。 一个版本可以有一对多的设备,一个设备也可以属于多个版本。 用户过滤包并选择一个包,然后选择版本和价格并将其存储在 Project_Has_Packages 中。 正如您在图片中看到的那样。 Database Design Picture
我的方法是,PackageName 仅来自 Package-Table,VersionName 和 PriceName 来自特定表。 在定价表和版本表中,我需要 PackageName 来使条目唯一,因为您可能有“Package1”、“Version1”和“Version2”以及“Package2”和“Version1”和“Version2” ”。由于属于版本的设备不同,版本也不同。 如果我使 VersionName 唯一(“ver1 Pack1”),那么数据库就不再标准化。 是否有可能避免循环引用?如何更改设计以避免这种情况? 想了一整天,我已经只见树木不见森林了。
最佳答案
表设计的主要问题是您使用真实数据(字符串)作为键。这现在正在刺痛你的屁股,并将继续如此。
尝试添加一个自动递增 int ID 作为每个表的主键以及 chiöd 表中相应的外键。
我相信圆形按键的“问题”在那之后就没有了?!
关于mysql - 在数据库设计中如何避免循环引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38092798/