担心表中的字段过多

Ark*_*ken 0 html php mysql sql

我目前正在计划我的下一个项目,这是一个基于文本的MMORPG游戏.我目前正在尝试设计数据库的某些部分,并遇到了一些我以前从未遇到过的问题.游戏的一部分允许玩家购买汽车并添加插件.我将完全有一个不同的桌子来管理汽车的插件,但是一个用户最多可以为一辆汽车增加100个插件,这需要超过100个字段,当然我对这一多个字段不满意因为它可能变得很难管理,有没有其他方法将它们分成多个表?

谢谢

Jac*_*son 9

为什么每个插件都必须是一个单独的列?难道你不能有一个多对多的连接表,将汽车链接到插件?

Car
ID | Owner
1  | Jacob
2  |  Mary

Addon
ID | Name        | Price
1  | Flame decal | $10
2  | CD Changer  | $150

Car_Addon
Car_ID | Addon_Id
1      |  1
1      |  2
2      |  2
Run Code Online (Sandbox Code Playgroud)

这表明雅各布的汽车有火焰贴纸和换碟机,而玛丽的汽车只有换碟机.

这种方法的优点:

  • 您可以使用外键约束来确保不能创建无效记录
  • 在任何一个方向都可以轻松查询 - 这辆车有哪些插件或哪辆车有给定的插件
  • 关系的含义很明确 - 您不依赖于在单个字段内解码序列化数据
  • 您可以存储有关汽车和插件之间关联的数据 - 该car_addon表可以包含添加到该汽车的插件的时间,付款方式,折扣包的一部分等.


Joe*_*lli 7

你在汽车和插件之间有多对多的关系.您需要一个中间联结表来解决该关系.

在此输入图像描述