繁体   English   中英

MYSQL-简单数据库设计

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM