Должен ли я использовать структуру базы данных «многие ко многим», если у меня есть только несколько ко многим? - PullRequest
1 голос
/ 30 июня 2011

Я новичок в веб-разработке и действительно могу воспользоваться некоторыми советами. Спасибо всем заранее!

У меня есть форма, в которой я прошу пользователей оценить свой опыт в нескольких областях (психическое, физическое, веселое) от 1 до 10. Всего около 10 областей. Стоит ли составлять таблицу областей и таблицу пересечений с areaID и userID? В таком случае, не проще ли создать одну таблицу с 11 столбцами (по одному для каждой области плюс идентификатор пользователя)?

Я понимаю, что таблица 'областей' с ключом areaID была бы наиболее надежной и позволяла бы мне позже добавить больше областей, но я действительно не вижу себя в этом. Кроме того, как я ожидаю, что <1000 пользователей, будет много работы по добавлению еще одного столбца в базу данных MySQL? </p>

Наконец, в какой точке отсечения я должен использовать структуру «многие ко многим»? Позже в форме у меня есть оценка пользователей ~ 30 полей от 1 до 4. Должен ли я использовать там систему двух таблиц?

Еще раз спасибо!

Ответы [ 5 ]

4 голосов
/ 30 июня 2011

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

4 голосов
/ 30 июня 2011

Было бы лучше использовать отдельную дочернюю таблицу. Затраты SQL для объединения минимальны, и вы получаете полную гибкость в отношении того, сколько / несколько записей вы хотите разрешить, без необходимости изменять структуру базы данных.

Это может быть только 10 областей в настоящее время, но PHB печально известны тем, что они изменили свое мнение о чем-то, что было «основой» за час до запуска.

2 голосов
/ 30 июня 2011

Предположим, вы хотите посчитать количество областей на пользователя.Как бы вы это сделали, если используете одну таблицу с 11 столбцами?

Реализуйте это с помощью таблицы пересечений.Вы будете рады, что сделали.

1 голос
/ 30 июня 2011

И то, и другое имеет смысл, но я бы выбрал подход «многие ко многим», поскольку затем вы можете указать в таблице областей название каждой области (и, возможно, добавить несколько комментариев, что означает 1 или 10 для этой конкретной области, и т. Д.)..)

0 голосов
/ 30 июня 2011

Нет неправильного ответа на этот вопрос, но подумайте: вы уверены, что это число останется фиксированным на десяти?

Лично я все равно использовал бы отношения многие ко многим. Это более элегантное решение, и, на мой взгляд, лучше. Тем не менее, выполнение работы хорошо - это пустая трата времени.

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