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

时间:2017-03-07 01:16:26

标签: sql database database-design foreign-keys relational-database

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

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

DT table

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

Field Table

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

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

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

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

DT表
ID
启动
结束
...

DT_field表
ID
DT_id (外键)