我有一个SQL表值:
id (int) | group (int) | value (int)
我希望将value
映射到字符串。对于一个group
,一个value
只能映射到一个字符串。从两个不同的组中,一个值可以映射到两个不同的字符串。
创建像这样的表
更好吗?map_id (int) | group (int) | value (int) | mapped (string)
或者像这样
map_id (int) | group (int) | mapping (text)
其中mapping是一个文本字段,例如
5=something
6=another string
7=next string
最后在程序中映射?
答案 0 :(得分:1)
前者通常更好。后者违反了第1范式(1NF)。非规范化是一种有效的现实生活方法,但可能不适用于这种情况。