我正在开发基于浏览器的在线游戏。我正在使用PHP和MySQL。将有用户和用户的村庄。
# users
-------
.id
.username
.password
.email
# villages
----------
.id
.name
.coordinate_x
.coordinate_y
.user_id
# users
--------
.id
.username
.password
.email
# villages
----------
.id
.name
.coordiante_x
.coordinate_y
# users_villages
----------------
.user_id
.village_id
哪种结构有用?
(注意:对不起,我找不到更多问题的解释性标题)
我应该更清楚。每个用户可以拥有许多村庄,一个村庄只属于一个用户。
答案 0 :(得分:3)
如果每个村庄只有一个用户,则结构A很好。它允许一对多的关系。一个或多个村庄可以与给定用户相关联。
如果每个用户可以有许多村庄,则多对多关系需要结构B.每个用户可以拥有(拥有或居住?)一个或多个村庄,每个村庄可以与一个或多个用户相关联。
答案 1 :(得分:2)
这完全取决于你想要达到的目标。如果你想让每个村庄属于一个用户,那么第一个更好。如果您希望村庄拥有/居住/由多个用户和,每个用户都可以拥有多个村庄,第二个更好。
答案 2 :(得分:1)
结构B将是一个更灵活的解决方案。它被标准化为更高的形式(http://en.wikipedia.org/wiki/Database_normalization)并且将支持任何关系结构A支持加上更多。