首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这些外键太多了吗?

这些外键太多了吗?
EN

Stack Overflow用户
提问于 2015-07-14 02:56:27
回答 2查看 617关注 0票数 3

我正在使用MySQL,并一直在为我正在构建的系统规划数据库结构。随着我一直在进行,我开始怀疑在许多不同的表中有一个特定的外键约束是否可以接受。据我所知,这会很好,因为这是合理的。但我想再查一遍。

例如,我有一个users表,我使用user_id作为许多表的外键,有时在一个表中使用多次。例如,我与一个one-to-one表有一个user_settings关系,该表当然存储user_id。然后我有了一个companies表,其中仅包含几个对user_id键的引用。在本例中,我有一列跟踪在系统中创建公司的用户(created_by),一列用于主联系人(main_contact,他也是系统的用户),并且可能还有另一种引用。因此,仅这一点,已经有3-4次将user_id密钥用作外键约束。

为了再添加一点信息,我有一个任务表,这个表当然需要引用user_id来跟踪它分配给谁,我还有另一个列,它跟踪创建任务的用户。这将分别是assigned_tocreated_by

还有更多的表,尽管该引用返回到该键。我可能已经有8份推荐信了。到目前为止,我确实认为我设计得很好,但根据我提到的,这听起来不错吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-22 10:36:33

在我看来,您的外键用法似乎很好--毕竟,您只是表示表之间的逻辑关系。

系统中的用户以多种方式与数据交互,要定义这些关系,您的方法是正确的。

我认为最关键的一点是,在很多情况下,你不会总是希望(或需要)让所有的连接代表你的关系--仅仅是你在这种情况下需要的那些。

票数 0
EN

Stack Overflow用户

发布于 2015-07-22 10:32:39

根据我尚未确定的情况,您定义的方式很好,即对许多表使用用户id作为外键。

如果您的行是::我有一个companies表,那么单独引用user_id键并不意味着您使用的是同一个表中的multipe user_id,而我知道您没有使用。

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

https://stackoverflow.com/questions/31396857

复制
相关文章

相似问题

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