首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >表与许多不同表的关系

表与许多不同表的关系
EN

Stack Overflow用户
提问于 2012-08-02 13:06:20
回答 2查看 91关注 0票数 2

我正在创建一个涉及上传的系统。现在这些上传需要附加到一种方式的东西,例如。一条消息、一份合同、一个项目

可以为附件创建一个表,然后将它们链接到这些类型吗?需要注意的是,它需要链接到每种类型的单个id。

例如:在附件表中

type -指向包含消息约定等列表的表的链接

id。-类型的id #,因此如果类型是message,则它将引用message.id,如果它是协定,则它将引用contract.id

但是就没有外键检查了?但是它看起来很奇怪,必须做外键。

代码语言:javascript
运行
复制
type
message_id (FK)
contract_id (FK)
project_id (FK)

编辑:有比3多几个表,比如5-6个,也许将来也会有更多。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-02 13:23:35

我会推荐:

  1. 附件表(attachment_id +您的邮件所需的其他列)每种可能的类型(消息、合同、项目),您将拥有一个关系表。

示例:

  • MessageAttachmentTable: message_id (FK)、attachment_id (FK)
  • ContractAttachmentTable: message_id (FK)、attachment_id (FK)

这样,您就可以拥有所有的数据库完整性约束,而不会有未使用的列。

票数 0
EN

Stack Overflow用户

发布于 2012-08-02 13:23:37

在我看来,具有指向各自表的外键的三个NULLable字段是最明智的方法。

此外,如果你有三个外键字段,你甚至不需要存储"type",因为它是由非空的外键字段决定的。

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

https://stackoverflow.com/questions/11771342

复制
相关文章

相似问题

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