簡體   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