为引用特定结果的用户设计的数据库 table
Database table design for a user referencing a particular outcome
设想:
用户输入名称、目标和大小。目标是 "long"、"average"、"short"。尺寸为 "big"、"medium"、"small"。有 3 个 table。 User
存储每个用户的姓名、目标和大小。 Final
存储基于 goal/size 组合的结果。 UserFinal
作为关联 table 存储具有相应结果的适当用户。目标和大小的特定组合会产生分配给该用户的特定结果(请参阅下面的 table)。
GOAL SIZE OUTCOME
Long Big 12
Long Medium 14
Long Small 18
Average Big 13
Average Medium 16
Average Small 19
Short Big 15
Short Medium 17
Short Small 20
Objective:Table Final
不应增长,仅用作 'lookup' table 当用户提交他们的目标和大小(不确定预计不会增长的 table 是否是一个好的设计?)。 outcome
值将用于每个特定用户的进一步计算。
问题:图示的 table 设计是否是反映这种情况的正确方式?如果不是,实现此目标的最佳方法是什么?
我删除了我的答案并提交了另一个答案,因为修改显着改变了问题的清晰度。
最终 table 纯粹作为查找 table 似乎不是好的数据库设计。
我会做一个简单的一对多关系。
每个 user
都有很多 outcomes
像这样:
用户
user_id [pk]
name
结果
outcome_id [pk]
user_id [fk]
goal
size
outcome
似乎Goal和Size确定了Outcome,每个User设置了一个Outcome。
请参阅以下数据模型:
示例数据:
Goal
--------
L Long
A Average
S Short
Size
--------
B Big
M Medium
S Small
Outcome
--------
L B 12
L M 14
L S 18
A B 13
A M 16
A S 19
S B 15
S M 17
S S 20
User
存储每个用户的姓名、目标和大小。 Final
存储基于 goal/size 组合的结果。 UserFinal
作为关联 table 存储具有相应结果的适当用户。目标和大小的特定组合会产生分配给该用户的特定结果(请参阅下面的 table)。
GOAL SIZE OUTCOME
Long Big 12
Long Medium 14
Long Small 18
Average Big 13
Average Medium 16
Average Small 19
Short Big 15
Short Medium 17
Short Small 20
Objective:Table Final
不应增长,仅用作 'lookup' table 当用户提交他们的目标和大小(不确定预计不会增长的 table 是否是一个好的设计?)。 outcome
值将用于每个特定用户的进一步计算。
问题:图示的 table 设计是否是反映这种情况的正确方式?如果不是,实现此目标的最佳方法是什么?
我删除了我的答案并提交了另一个答案,因为修改显着改变了问题的清晰度。
最终 table 纯粹作为查找 table 似乎不是好的数据库设计。
我会做一个简单的一对多关系。
每个 user
都有很多 outcomes
像这样:
用户
user_id [pk]
name
结果
outcome_id [pk]
user_id [fk]
goal
size
outcome
似乎Goal和Size确定了Outcome,每个User设置了一个Outcome。 请参阅以下数据模型:
示例数据:
Goal -------- L Long A Average S Short
Size -------- B Big M Medium S Small
Outcome -------- L B 12 L M 14 L S 18 A B 13 A M 16 A S 19 S B 15 S M 17 S S 20