使用表名作为枚举表的外键类型

时间:2017-04-09 18:29:15

标签: sql-server database database-design enumeration

我有一个包含40多个表的数据库模式,其中25个是包含以下字段的枚举

1. Id (Int)
2. Item (String)

我讨论了这个场景here,并发现使用不同的表格会更好。

我实现了这个,但现在我又面临一个问题 我有一个表Questionnaire,其中包含以下字段

 1. Id
 2. Question

其中我必须绑定List引用意味着哪个列表属于哪个问题。正如建议保持一个查找表更好地使用EnumerationType表,这样我就可以创建一个关系并获得相应问题的列表。表格看起来像这样

Questionnaire
1. Id(PK)
2. Question
3. EnumerationTypeId(FK)

EnumerationType
1. Id(PK)
2. EnumerationType

EnumerationItem
1. Id(PK)
2. EnumerationTypeId(FK)
3. EnumerationItem

另一方面,我在使用25个不同的表时面临问题。我无法直接将问题绑定到这些表格。我不知道如何实现这一目标。

我想到的解决方案是创建另一个表,而不是25个表,这将是联系表,比如说QuestionList,在“问卷调查”和其他25个表之间

1. Id
2. QuestionId
3. TableName

我所能做的只是按名称引用它,但编写包含表名的查询是一个好习惯,是否会因使用INFORMATION_SCHEMA.TABLES编写复杂查询而产生任何问题?

Shell我提供了更多详细信息?

感谢

0 个答案:

没有答案