首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据关系创建哪些表

根据关系创建哪些表
EN

Database Administration用户
提问于 2012-08-20 12:30:34
回答 2查看 158关注 0票数 3

我们正在计划用一个新的数据库()来开发一个新的系统。

我们有以下实体和下列关系:

实体:俱乐部,连锁店,PaymentTypes等.

关系:俱乐部-连锁(M);(Clubs_Chains)-Commission (1-1);俱乐部-连锁-付费类型(M);

  • Commission是一个包含perecentage值的数字字段,而不是实体。

我们希望数据库能够规范化。我们考虑了以下选项,但不确定这是否是该场景的最佳解决方案:

Clubs_Chains表: ClubChainID PK不为空,ClubID FK不为空,ChainID FK不为空,ClubID int不为空。

Clubs_Chains_PayMethod表: ClubChainID PK不为空,PaymentTypeID PK不为空

谢谢!

EN

回答 2

Database Administration用户

回答已采纳

发布于 2012-08-20 12:37:20

没有必要在您的clubs_chains表中有一个代理主键。

clubs_chains中的两个外键的组合对于主键来说是足够的。

可以使用外键约束来确保clubs_chains_paymethod表使用复合主键引用clubs_chains中的现有记录。这可能会有所帮助,因为它将允许clubs_chains_paymethod与您的俱乐部和链表之间更直接的连接,而不会牺牲任何引用完整性。

另一方面,有些人只是喜欢使用代理项主键,甚至在交叉表上也是如此。如果这是您的数据建模风格,那么它也可以。

票数 7
EN

Database Administration用户

发布于 2012-08-21 14:39:10

我从你的指示推断出的ER图。我不确定这是否是对你描述的正确解释。在此文章中讨论了ER图和ER图到关系的转换。

用于标记为?的关系和实体。我不知道合适的名字。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/22765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档