V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
cevincheung
V2EX  ›  MySQL

一个游戏交易网的数据库设计,求指点

  •  
  •   cevincheung ·
    cevin · 2015-09-11 10:17:57 +08:00 · 3457 次点击
    这是一个创建于 3371 天前的主题,其中的信息可能已经有所发展或是发生改变。

    类似 5173 ,不用多说什么了吧。

    现在的设计如下:

    item_category商品分类主表

    id:
    name:商品分类名称(装备、金币、账号等)

    game_category游戏分类表

    id:
    name:游戏分类名称(网页游戏,客户端游戏,手机游戏)

    game系统支持的游戏列表

    id:
    name:游戏名称
    game_category_id:游戏分类 id

    game_attr游戏属性表

    id:属性 id,自增
    name:属性名称(如法师、侏儒、精灵,其实这个表只有账号、装备有用)
    item_catetory_id:商品分类 id (这个属性属于什么分类比如装备、账号、金币)

    item商品表

    id:
    name:商品名称
    game_id:游戏 id
    item_category_id:商品分类 id

    item_attr_relation商品属性对照表

    item_id:商品 id
    game_attr_id:属性 id

    然后一些应用场景:
    根据属性进行筛选商品获取列表

    获取装备为“地精”的商品列表,假设地精 id 为 1 ,商品分类“装备”的 id 为 1

    select * from item where item_category_id = 1 and id in (
        select item_id from item_attr_relation where game_attr_id =1
    )
    

    但是明显数据库的设计有不合理的地方,游戏属性就是类似淘宝的选择手机,就出现品牌、 RAM 大小、操作系统。选择衣服出现品牌、尺寸等分类下细分条件筛选场景。
    应用到这里就是装备的等级、职业、性别筛选。账号的对应属性筛选,比如如果卖 QQ 号就要可以筛选等级( 0-10 级),账号的性别、职业等。

    哪里不合理求指点(小创业公司木有专业的 DBA - -#),搜索用 elasticsearch 所以还要考虑到结合创建索引的问题。

    3 条回复    2015-09-11 11:03:30 +08:00
    lavadore
        1
    lavadore  
       2015-09-11 10:44:44 +08:00
    ...这个还真不是一两句话就能说清楚的
    cevincheung
        2
    cevincheung  
    OP
       2015-09-11 10:47:23 +08:00
    @lavadore 可以大胆胡说嘛 :doge:
    badaciacia
        3
    badaciacia  
       2015-09-11 11:03:30 +08:00
    我倾向于把这种表结构

    game 系统支持的游戏列表
    id:
    name: 游戏名称
    game_category_id: 游戏分类 id

    设计为 2 张表

    game 系统支持的游戏列表
    id:
    name: 游戏名称


    游戏,分类映射表
    id:
    game_id
    game_category_id: 游戏分类 id
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3532 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 04:55 · PVG 12:55 · LAX 20:55 · JFK 23:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.