[英]MYSQL - SImple database design
我想开发一个系统,使用户可以动态获取数据(我的意思是动态的,不需要重新加载页面,就可以使用AJAX ..但是没什么大不了的)。
我的情况就是这样。 我有这个表,我称它为“玩家”,在此玩家表中,我将存储玩家信息,例如玩家名称,级别,经验等。
每个玩家可以有不同的衣服,从上衣(衬衫),下装,鞋子和发型开始,并且每个玩家可以有多个上衣,下装,鞋子等。
我犹豫或不确定的是,您通常如何存储数据? 我当前的设计是这样的:
Player Table
===========================================================================================
id | name | (others player's info) | wearing | tops | bottoms
===========================================================================================
1 | player1 | | top=1;bottom=2;shoes=5;hair=8 | 1,2,3| 7,2,3
Tops Table
=====================
id | name | etc...
=====================
1 | t-shirt | ...
我不确定这种设计是否良好。 如果您是数据库设计人员,您将如何设计数据库? 或者您将如何存储它们?
请指教。 谢谢
似乎您是新手。
请在Wikipedia上阅读有关数据库规范化的文章:
http://en.wikipedia.org/wiki/Database_normalization
就我个人而言,我不会像上面的示例那样执行此操作,因为每次添加或删除某些T恤时,您都必须更新玩家表。
简而言之:您应该创建一个将两个表(玩家和衣服)连接起来的表,而不是在“ wearing”列中插入。
你会得到
players
id name
1 player1
clotheTypes
1 top
2 bottom
clothes
id name type
1 shirt1 1
2 shirt2 1
3 pants1 2
wearing
playerId ClotheId
1 1
1 2
但请阅读taht @badcat分享的文章!
编辑:根据要求,一些提示:
您一般不希望这样:
id name computer
1 john work, laptop, desktop, oldcomputer
因为您那应该在单独的表中。 现在,您实际上可以在以后添加计算机的品牌和速度:您现在无法做到这一点。
Person
id name
1 john
computer
id name owner
1 work 1
2 laptop 1
3 desktop 1
....
您需要创建一个额外的衣服表,如下所示:
播放器
id_player //1
name //Jhon
level //6
experience //13
player_cloth
id_player //1
id_clothe //5
cloth_types
id_cloth // 5
type // hat
description // very warm
创建表后,您需要关联此数据,仅需要id_player
值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.