mysql - 这是不必要的规范化吗?

标签 mysql database normalization

我在一个蜗牛管理游戏中有几个 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/

相关文章:

mysql - 将按日期排列的累积值序列转换为非累积值

php - 如何使用中介来连接 Laravel 中的表?

MySQL数据类型 "int"超出限制

IOS DBAccess迁移到新的表结构

machine-learning - 先PCA还是先归一化?

database - 具有传递依赖性的 2NF?

php - MYSQL Reset Auto Increment 提高性能

php - 使用 Zend_Db_Table_Abstract 限制查询返回列

mysql - 在选择中选择查询

python - 带有数组和标量的 Numpy 数学?