在标题可能发生变化的情况下,存储数据的最佳标准化方法是什么

时间:2014-10-15 20:11:06

标签: mysql sql sql-server normalization

我有一张表可以保存游戏统计数据'。持有的统计数据的名称将根据统计数据的运动而变化。

最佳做法是创建两个表:一个用于包含诸如< Stat1,Stat2'等列的统计数据。另外一个拿着带有sportID作为关键字的标题。或者最佳做法是为每项运动设置多个度假村桌子。或者其他任何方式?

谢谢,

1 个答案:

答案 0 :(得分:1)

我同意安迪。像Stat1这样的通用标题列 - 其中目的未在列名中指定,可以多态使用,或者列类型必须更通用 - 通常表示SQL / RA设计不佳。

考虑是否遇到过这种情况:create table people (field1 varchar(20), field2 varchar(20))。是的 - 将在我的数据库中飞行。给出与目的有关的列(和表)名称。

相反,收集的每个不同的类型信息应该具有它自己的实体(读取:表格)或相关实体组。在这种情况下,我会想象每项运动代表不同类型的收集统计/信息。 (即使输赢信息因运动而异。)

尝试"标记"基于附加表的列是Entity-Attribute-Value (EAV)模型的中途尝试。虽然EAV 可以有用但它在SQL中有很多的缺点,除非经过仔细考虑特定的用例,否则不应该使用它。 (我认为EAV适合这种情况。)