确保表中列的参照完整性

时间:2011-06-16 16:11:23

标签: database referential-integrity

目前我有一个表格模型,格式如下:

条件(criteria_id,criteria_name)

criteria_data(criteria_id,value)

我打算将日期相关信息存储到表中,因为一个条件(日期条件)可以只包含criteria_data表中的单个日期,而其他criteria_data可以是日期中的日期库存的价格。分开的一排。 (另一个复杂因素是:股票的名称也是一个标准)

我的问题:

我怎样才能确保只能为特定日期和股票名称(另外两个标准和行)输入1个价格(单行标准)。

我真的不想在App层中强制执行此操作,因此我主要寻找DB Layer解决方案(如果可用)。

如果建议使用更合适的数据模型,我也会被告知要废弃我的整个表模型。

修改 在被告知我的愚蠢之后(见下面的dPortas帖子),我接受这不是明智的选择。我想到了一个新模型:

criteria_data(stockName,price,high,low,price,change)

虽然这看起来像,但我认为实际的列名称将是包含criteria_id的标识符。例如,stockname字段可以是col_1,而high可以是col_3,但这可以确保我可以在各个列上强制执行完整性。

人们对此有何看法?

1 个答案:

答案 0 :(得分:1)

您的表格设计看起来很像EAV的情况。反模式的缺点之一是您无法准确地存储正确的数据类型或对其应用约束。我建议你重新考虑一下这个设计。

建议重新设计:条件(criteria_id,criteria_name,date,stock_name,price)key:(stock_name,date)