所以我正在制作运行日志,并将锻炼结果存储为表格中的条目。对于每次锻炼,用户可以添加间隔(由时间和距离组成),因此我有一个如下所示的数组:
[workout] =>
[description] =>
[comments] =>
...
[intervals] =>
[0] =>
[distance] => 200m
[time] => 32
[1] =>
[distance] => 400m
[time] => 65
...
我真的很想将“intervals”数组扔进serialize()或json_encode()并将其放入表中的“intervals”字段中,但这违反了良好的数据库设计原则(顺便说一下,我几乎一无所知)。
这样做有什么缺点吗?我从不打算根据“间隔”的内容查询我的表。仅为间隔创建一个单独的表似乎会带来很多不必要的复杂性,因此如果有更多经验的人遇到过这样的情况,您采取了什么路线以及结果如何?
最佳答案
我认为这是一个坏主意。例如,间隔字段应该有多大?如果将其分成两个表,因为它看起来像一对多关系,所以您不需要考虑间隔数量的人为大小限制。
此外,尽管您说您永远不需要根据时间间隔进行查询,但您稍后可能会改变主意并找到您确实想要这样做的情况。为什么要限制你的能力并人为地使这种特殊情况非规范化呢?创建两个表并不那么复杂。此外,您始终可以将它们加入到 View 中,将它们视为查询的单个逻辑数据集,并两全其美。
关于database - 违反了第一范式,可以满足我的目的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4572884/