如何构建数据库,多个外键?

Posted

技术标签:

【中文标题】如何构建数据库,多个外键?【英文标题】:How to structure database, multiple foreign keys? 【发布时间】:2017-03-07 01:16:25 【问题描述】:

我觉得这可能是一个独特的问题,但希望有人遇到过类似的情况。

我的应用程序使用这个数据库表:

DT table

问题在于 Field1 - 9。 根据用户决定如何设置他们的应用程序实例,可以使用任意数量的字段(从 0 到 9)。这些信息保存在此表中:

Field Table

所以对于这个例子,只有两个字段。并且当为 DT 表创建记录时,字段 1 和 2 将输入数据,并且所有其他字段列将为 NULL。显然这不是一个好的做法,因为如果将来更改了字段名称,那么以前的所有数据都没有意义。

我一直在想办法以不同的方式构建它。我所能想到的就是,当创建 DT 记录时,它会以某种方式保存已使用字段的外键,但似乎在一列中不可能有多个外键。

任何帮助或建议将不胜感激。

【问题讨论】:

【参考方案1】:

对此进行规范化的一种方法是将重复字段分解到一个单独的表中,其中每个字段都有一个条目,其中 DT_id 作为 DT 表的外键。

DT 表: 身份证 开始 结束 ...

DT_field 表: 身份证 DT_id (外键) 价值

【讨论】:

以上是关于如何构建数据库,多个外键?的主要内容,如果未能解决你的问题,请参考以下文章

世博sqlite外键

如何在 ERD 数据库图中表示多个相似的外键?

如何在 Laravel 迁移中使用多个数据库设置外键约束

将特定的外键字段指定为 SSAS 数据源中两个表之间的链接

如何以最少的数据库点击次数将多个实例添加到 Django 反向外键集?

如何从使用实体框架的外键链接的多个表中获取所有数据?