我需要帮助如何在我的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