0

目前我有一个具有以下格式的表格模型:

标准(criteria_id,criteria_name)

标准数据(标准ID,值)

我打算将与日期相关的信息存储到表中,因为一个标准(日期标准)可能只包含标准数据表中的单个日期,而其他标准数据可能是单独行中该日期的股票价格。(另一个复杂之处在于:股票的名称也是一个标准)

我的问题:

我怎么可能确保对于特定日期和股票名称(另外 2 个单独的标准和行)只能将 1 个价格(单行标准)输入到表格中。

我真的不想在 App 层强制执行这一点,所以我主要是在寻找 DB 层解决方案(如果有的话)。

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

编辑 在得知我的愚蠢行为后(请参阅下面的 dPortas 帖子),我接受这不是明智的选择。我想到了一个新模型:

标准数据(股票名称,价格,高,低,价格,变化)

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

人们对此有何看法?

4

1 回答 1

1

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

建议重新设计:标准(criteria_id,criteria_name,date,stock_name,price)键:(stock_name,日期)

于 2011-06-16T16:27:29.417 回答