我想创建一个用于创建学术考试的数据库应用程序。为了简单起见,该数据库包含以下3个表。
问题:
类别:
ProblemCategory:
每个问题至少有一个类别,最多5个类别。我的问题是如何确保此约束在数据库级别保持不变?
奖金问题:
下面的设计是否推荐作为上述设计的替代品?
问题:
类别:
发布于 2014-04-24 08:16:50
问题1:每个问题至少与一个类别有关。
答:在Problems表上声明外键约束。
Problems.ProblemID REFERENCES ProblemCategory.ProblemID(大概还有在ProblemCategory上声明的引用Problems.ProblemID和Categories.CategoryID的外键约束。)
问题2:每个问题最多涉及5个类别。
答:在ProblemCategory表上声明一个约束。(正如布兰科指出的那样。)
WHERE (SELECT MAX(CatCount)
FROM (SELECT COUNT(*) AS CatCount
FROM ProblemCategory
GROUP BY ProblemID)
) <= 5问题3:设计时每个问题记录最多有五个猫的ID。
答:不,那是个糟糕的主意。(阅读任何关于正常化的文章。)考虑:
https://stackoverflow.com/questions/23251572
复制相似问题