我需要幫助如何在我的mysql數據庫中設置我的表。mysql數據庫結構和關係
我有一個用戶。用戶可以根據需要獲得10個令牌。令牌只能用於一件事。他們可以使用它創建一個卡通頁面,遊戲頁面,生物頁面,問題頁面等。該標記也可以重新分配到另一個頁面。
我想看看構建我的數據庫的最佳方式是什麼和關係。
我在想有一個用戶表,令牌表,卡通表,遊戲桌,生物表和問題表。但我如何與他們聯繫。
我需要幫助如何在我的mysql數據庫中設置我的表。mysql數據庫結構和關係
我有一個用戶。用戶可以根據需要獲得10個令牌。令牌只能用於一件事。他們可以使用它創建一個卡通頁面,遊戲頁面,生物頁面,問題頁面等。該標記也可以重新分配到另一個頁面。
我想看看構建我的數據庫的最佳方式是什麼和關係。
我在想有一個用戶表,令牌表,卡通表,遊戲桌,生物表和問題表。但我如何與他們聯繫。
關係數據庫表設計不是一門硬科學。這是一個非常靈活的範例,可以根據應用程序的性質而改變。這就是說,你應該遵守某些設計原則。見例如http://en.wikipedia.org/wiki/Database_design。
這就是說,我會採取一個似乎高度動態的方法,因爲我不確定應用程序細節。首先,你肯定會需要一個users
表可能看起來像:
用戶:
現在,您可以選擇指定的用戶的方式,你會希望看到如何用戶都在使用他/她的令牌:
令牌:
如上所述,你希望人們在特定的頁面類型使用令牌,就像卡通頁面,生物頁面等此表定義:
pagetypes:
現在,你可能有幾個表定義類型的頁面,所以我會指定只有一個佈局:
bio_pages:
摘要
綜上所述表格佈局,你要設計的數據庫,以便自包含的實體不跨越多個表和多個實體不合併成一個表。這就是說,我從表中分離出tokens
表中不同的<pagetype>_pages
表。爲了讓設計更直觀,我會做一些示例查詢,以幫助您理解佈局。
要獲得用戶已創建的所有生物的網頁:
SELECT bio_pages.*
FROM bio_pages
INNER
JOIN tokens
ON bio_pages.token_id=tokens.token_id
INNER
JOIN users
ON tokens.user_id=users.user_id
WHERE users.first_name='john'
AND users.last_name='doe'
要獲取硬幣的總數,用戶使用了,並且還他們可以使用硬幣的最大數量:
SELECT SUM(tokens.n_tokens) AS used_tokens,
users.n_tokens AS max_tokens
FROM tokens
INNER
JOIN users
ON tokens.user_id=users.user_id
WHERE users.first_name='john'
AND users.last_name='doe'
GROUP BY users.user_id
希望這一切有意義,非常直觀。請讓我知道,如果有什麼不清楚。
非常感謝你......我會試着實現這個結構......並讓你知道它是如何發展的。 – 2012-08-12 18:39:17
這可以很容易地通過[關係數據庫管理系統](http://en.wikipedia.org/wiki/Relational_database_management_system) – 2012-08-12 13:50:45
以非常有效的方式完成當你說與所有人有關......什麼樣的相關你在找什麼? – Deepak 2012-08-12 14:02:59