Database 规模问题的关系数据库设计

Database 规模问题的关系数据库设计,database,scale,Database,Scale,我需要在SQL Server中存储比例问题(按比例对项目进行评分…)数据。当前的数据库结构是: 问题 问题号 问题: 问题选项 问题号 选项ID 选项说明 用户响应 用户ID 问题号 选项ID 量表问题的范围从-100到100。我可以生成范围内的数字序列,以强制引用完整性。这是确保数据准确性的最佳方法吗?有更好的方法吗 谢谢。另一个选项是使用插入/更新前触发器检查值。这样,您就不必受到约束(其他问题可能需要不同类型的回答) 另一种解决方案是编写一个存储过程来执行插入/更新。这样,您可以在更新表之

我需要在SQL Server中存储比例问题(按比例对项目进行评分…)数据。当前的数据库结构是:

问题

问题号

问题:

问题选项

问题号

选项ID

选项说明

用户响应

用户ID

问题号

选项ID

量表问题的范围从-100到100。我可以生成范围内的数字序列,以强制引用完整性。这是确保数据准确性的最佳方法吗?有更好的方法吗


谢谢。

另一个选项是使用插入/更新前触发器检查值。这样,您就不必受到约束(其他问题可能需要不同类型的回答)

另一种解决方案是编写一个存储过程来执行插入/更新。这样,您可以在更新表之前检查存储过程中的值。 但我认为这取决于你的用途,以及我们是否需要能够存储其他类型的响应


另一个选项是对选项表进行一些创新,包括最小值和最大值,然后执行CONNECT BY LEVEL语句以获得不同的值,类似于(Oracle):

WITH RECS AS 
 (
    SELECT 'OPTION A' AS ANSWER_OPTION
    , 1 AS MIN_VALUE
    , 100 AS MAX_VALUE
 FROM DUAL
 ) 
SELECT ANSWER_OPTION
, ROWNUM AS OPTION_VALUE
FROM RECS
CONNECT BY LEVEL  BETWEEN MIN_VALUE AND  MAX_VALUE