我有一个数据库似乎对我的数据库设计知识有挑战性。 我会尝试解释,然后我会问这个问题。
我有一系列与系统互动的公司,这些公司可以在我的国家和我的国家运营,所有公司都致力于捕鱼活动。这些公司可以拥有产品供应商或只是自己钓鱼。这些提供商可以在任何国家运营。从供应商处购买的产品(大多数是冷冻鱼)也可以来自任何国家,并不一定是供应商的国家。 当然,我有一个国家表格,其默认值设置为我的国家/地区,该表格也由提供商和产品引用。
嗯,通过这种设计,没有办法避免关系交叉。但我真正的问题是,
谢谢!
答案 0 :(得分:2)
您的数据库设计应该没问题。需要与不同国家定义的东西必须是。逻辑上没有“交叉”的东西。
在数据库设计中你应该避免的一件事是循环关系,这是需要B,B需要C和C需要A。
答案 1 :(得分:0)
好吧,让我们分析一下情况:
这些公司可以在我的国家和我的国家/地区运营
我假设这些公司由user
表代表;从技术上讲,他们不需要一个国家,但展望未来你可能希望有来自其他国家的公司。
这些提供商可以在任何国家/地区运营。
好的,provider
肯定需要他们自己的国家/地区。
从供应商处购买的产品(大多数是冷冻鱼)也可以来自任何国家,而且不一定是供应商的国家。
所以product
也需要他们自己的国家/地区字段。
基本上,您需要代表X国的产品,从Y国的供应商处购买并由Z国的公司提供。您设计的模型似乎正确地反映了这些关系。