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