我在蜗牛管理游戏中有一些MySQL表:用户,种族,罐子,蜗牛。蜗牛表中有很多信息被丢弃(从遗传字符串信息到功能属性,如速度和耐力到视觉属性,如shellColorR,B和G,交配属性,如唤醒延迟,遗产属性,如父蜗牛ID等),我会喜欢以某种逻辑方式将它分成多个表。
我正在考虑将所有这些信息分成不同的类别,并有一个表格(蜗牛ID是每个的主键):
然而,虽然我认为将这些组织成单独的主题表是有道理的 - 但实际上它似乎并没有真正提供那么多的好处。我没有避免任何重复数据 - 每个表都有一个每个蜗牛的唯一记录。
这种结构的最佳方法是什么? 应该我只是在一个大的蜗牛表中拥有上述所有内容,还是有更好的方法来组织这些数据?
答案 0 :(得分:2)
除非蜗牛在最后五个表中的每一个表中都有多行,否则它不会正常化'根本就是:它只是不必要的表分裂。
答案 1 :(得分:1)
如果标准化规则不强迫您这样做,请不要分成表格。 创建规范化数据库并打印图表或创建注释。 然后你可以创建类似于model和getAttribute方法的东西,它有属性名称参数。
答案 2 :(得分:1)
喜欢这个想法 - 总有一些让我对蜗牛微笑的东西!但是我离题了......
真的,对此没有正确或错误的答案。如果总有1-1关系,那么一个大表不是问题。是否会使您的代码和/或数据库更易于分割表格?分裂的通常原因似乎不适用于此。
答案 3 :(得分:1)
对于我在数据库设计方面的经验,您可以将这些数据保存在同一个表中。分成不同的表格不会给你带来任何好处。您可能最终会获得更多空间分配:我认为您的PK上有索引构建,因此您将获得六个索引而不是一个索引。