类似 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
然后一些应用场景:
根据属性进行筛选商品获取列表
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 所以还要考虑到结合创建索引的问题。
1
lavadore 2015-09-11 10:44:44 +08:00
...这个还真不是一两句话就能说清楚的
|
2
cevincheung OP @lavadore 可以大胆胡说嘛 :doge:
|
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 |