создание профилей пользователей, каждый с личными данными MySQL, используя php - PullRequest
0 голосов
/ 07 марта 2012

Я пытаюсь найти лучшие практики для хранения пользовательских данных на сайте php / mysql. скажем, на сайте будет размещена служба сохранения информации о людях, которые есть у них дома. Я установил таблицы, которые включают в себя: кухня, ванная комната, спальня и т. Д. Салли добавляет ей 6 кухонных предметов. Джон добавляет свои 3 кухонных предмета. и т.д.

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

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

Можно ли настроить разные таблицы для каждого пользователя? это возможно? или это будет глупо?

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Я бы не стал настраивать таблицу для каждого пользователя.

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

user table
room table
item table
relational user->item (id, user_id, item_id, room_id) OR:
relational item->room

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

Ваш список может стать большим, но если вы правильно масштабируете и планируете внутреннюю миграцию обновлений, когдавам абсолютно необходимо (как и миллионы пользователей), тогда у вас все будет хорошо.Подумайте, сколько таких сайтов, как Facebook и Ebay, нужно поддерживать.Большие отношения нормальны для баз данных, поэтому я не позволю пару миллионов строк напугать вас.

0 голосов
/ 07 марта 2012

Я бы использовал три таблицы:

  • rooms (id, room), для хранения значений kitchen, bathroom, bedroom и т. Д.
  • users
  • items:Предполагая, что у вас есть общая структура вашей нынешней кухни, ванной комнаты, спальных столиков, один стол может заменить их все.Эта таблица также должна содержать два внешних ключа: user_id и room_id.

С этой структурой вы можете легко извлекать и фильтровать ваши данные.

...