请教一个mysql的弱智问题

  • w
    wobushik
    比如做一个魔兽世界的公会,

    第一个表是整个服务器的公会列表,

    假设有一千个公会吧,

    然后每个公会又有一百个人,

    那么请问怎么做呢,

    难道先做一个公会表,

    然后再做一千个小的表格吗?
  • p
    para
    有了公会id还要公会表干啥……除非另外要存一些公会信息啥的……
  • 上古TITAN
    两张表,公会表和玩家表,玩家可以保存一个公会id的字段
  • 鱼丸
    10万的数据还不需要分表

    1000万再考虑吧
  • 流浪的枪骑兵
    你这不是mysql问题,你这是关系型数据库的问题
    请自行查询关系型数据库的范式概念
  • y
    yfl2
    楼主学了那么久it,能问出这个,确实是天赋太差
  • y
    yfl2
    真心建议你放弃吧,你没有学习的天赋
  • H
    HHH2000
    恕我直言,感觉这是一个钓鱼贴……
  • w
    wobushik
    你觉得这贴能叼什么鱼?
  • t
    tgmj001
    Many to many,三个表
  • w
    wobushik
    真的要三个吗,我看了回复想了想,好像两个也行,

    只不过,我们游戏里面其实加入公会的可能是少数,所以每个人都加好多列感觉有点浪费,

    不知道会不会影响效率
  • t
    tgmj001
    三个表逻辑上简单明了而且没坑。你的用户表不需要改动,加一个table关联用户和公会。你可以网上借鉴一下学生和课程数据库设计,基本类似。基本就是16楼的建议。以后比如做列出某公会玩家,两个表和三个表性能会差很多,如果公会玩家很少。你可以本地测试一下。

    本帖最后由 tgmj001 于 2019-6-1 05:01 通过手机版编辑
  • t
    tgmj001
    不会是想把公会的一些信息放在玩家表里吧?那样是很差的设计,比如玩家表里有id列, name列,公会name列等,那样不好。如果只加公会id列也不如三表设计。

    本帖最后由 tgmj001 于 2019-6-1 05:35 通过手机版编辑
  • t
    tgmj001
    短期看问题不大,如果是学校作业或个人项目用完就扔可以的。长期的话用户表会爆炸,信息太多,各种问题。如果能用就行可以两个表,如果想同时学习一下建议三个。

    本帖最后由 tgmj001 于 2019-6-1 06:07 通过手机版编辑
  • c
    chucky
    魔兽有私服 有代码的有数据库自己下个研究一下就好了呀
  • 1
    11508721
    完全范式化设计是为了降低数据冗余,使得entity之间关联逻辑更加清晰

    但是会导致过多的table join,性能不一定更好
  • t
    tgmj001
    整体业界从database join to HTTP join,应该问题不大。主要还是一段时间后用户表的column会越来越多。

    本帖最后由 tgmj001 于 2019-6-1 08:02 通过手机版编辑
  • k
    koholint
    Posted by Xiaomi MIX 2S
    按楼主的描述直接一张大宽表算了,反正看描述楼主也不懂,肯定不是公司项目
  • t
    tgmj001
    你看这个表它又大又宽。。。
  • s
    sunchen987
    小规模区别不大

    用户表加个字段:所在公会id,少一个表简洁点