Какая структура более полезна? - PullRequest
1 голос
/ 13 января 2011

Я работаю над браузерной онлайн-игрой. Я использую PHP и MySQL. Будут пользователи и деревни пользователей.

Структура A

# users
-------
.id
.username
.password
.email

# villages
----------
.id
.name
.coordinate_x
.coordinate_y
.user_id

Структура B

# users
--------
.id
.username
.password
.email

# villages
----------
.id
.name
.coordiante_x
.coordinate_y

# users_villages
----------------
.user_id
.village_id

Какая структура будет полезна?

(Примечание: извините, я не смог найти более объяснительное название вопроса)

Исправление:

Я должен был быть яснее. Каждый пользователь может владеть многими деревнями, а деревня принадлежит только одному пользователю.

Ответы [ 3 ]

3 голосов
/ 13 января 2011

Структура A хороша, если в деревне есть только один пользователь. Это позволяет отношения один ко многим. С одним пользователем может быть связана одна или несколько деревень.

Если может быть много деревень на пользователя, тогда структура B необходима для отношения «многие ко многим». Каждый пользователь может иметь (иметь или жить в?) Одну или несколько деревень, и каждая деревня может быть связана с одним или несколькими пользователями.

2 голосов
/ 13 января 2011

Это полностью зависит от того, чего вы хотите достичь.Если вы хотите, чтобы каждая деревня принадлежала одному пользователю, первое лучше.Если вы хотите, чтобы деревни принадлежали / населяли / кем бы то ни было более одного пользователя и , чтобы каждый пользователь мог владеть несколькими деревнями, второй лучше.

1 голос
/ 13 января 2011

Структура B будет более гибким решением.Он нормализован к более высокой форме (http://en.wikipedia.org/wiki/Database_normalization) и будет поддерживать любые отношения, поддерживаемые структурой A, плюс еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...