我在一个蜗牛管理游戏中有几个 MySQL 表:users、races、jars、snails。蜗牛表中倾倒了如此多的信息(从遗传字符串信息到速度和耐力等功能属性,再到 shellColorR、B 和 G 等视觉属性,唤醒延迟等交配属性, parent 蜗牛 ID 等遗传属性等),我会喜欢以某种逻辑方式将其拆分为多个表。
我正在考虑将所有这些信息分成不同的类别,并为以下内容创建一个表格(蜗牛 ID 是每个类别的主键):
- 蜗牛(ID、姓名、当前jar)
- snail_genes(shellColorGeneAllele1, shellColorGeneAllele2, 眼睛颜色、图案形状等相同)
- snail_heritage (stagID, doeID)
- snail_traits_behavioural(currentAggression、baseAggression、aggressionModifier 等)
- snail_traits_physical(年龄、健康、基础/当前/模组速度等)
- snail_traits_visual(shellColor、eyeColor、patternColor、patternShape 等)
然而,虽然在我看来将它们组织到单独的主题表中是有意义的 - 但实际上它似乎并不能真正提供那么多好处。我没有避免任何重复数据 - 每个表都会有每个蜗牛的唯一记录。
构建此结构的最佳方法是什么? 我应该将以上所有内容都放在一个大蜗牛表中,还是有更好的方法来组织这些数据?
最佳答案
除非蜗牛在最后五个表中的每一个中都可以有超过一行,否则它根本就不是“规范化”:它只是不必要的表拆分。
关于mysql - 这是不必要的规范化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23708846/