Как обращаться с разными типами пользователей? - PullRequest
3 голосов
/ 13 февраля 2009

Теперь мой сайт начнет разрешать регистрироваться пользователям двух разных типов ...

  1. нормальные люди
  2. компаний

они смогут делать все то же самое на сайте, но их профили будут выглядеть по-разному, и я уверен, что они захотят хранить разные типы информации о себе.

мой вопрос: должен ли я хранить их в отдельных таблицах mysql? или ... я должен поставить их на 1 и пометить их как "пользователь" или "компания"?

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

спасибо!

Ответы [ 2 ]

8 голосов
/ 13 февраля 2009

Эта ссылка объясняет некоторые лучшие практики работы с базами данных.

Я бы создал таблицу «Учетные записи» с UID, с общей информацией между двумя хранящимися там данными и типом учетной записи.

Затем таблица «Companies» с информацией о конкретной компании, используя тот же UID, что и для учетной записи, и, я не знаю, таблица «Users» с информацией, специфичной для пользователей.

Это избавляет вас от необходимости создавать две очень похожие таблицы, содержащие неиспользуемые столбцы или дублирующие данные.

Как это:

Accounts
UID|UserName|Password|Account Type

Companies
UID|Company Name|Address|Contact Person

Users
UID|First Name|Last Name|Display Name
1 голос
/ 13 февраля 2009

Не помещайте их в полностью отдельные таблицы, иначе вам придется искать имена пользователей, данные аккаунта в 2 разных местах, где вы можете получать заявления везде. Тогда у вас будет немного времени, пытаясь сделать ссылочную целостность и попытаться заставить таблицу «заказов» ссылаться на пользователя ИЛИ таблицу клиента. Либо поместите общую информацию в одну таблицу и поместите конкретные данные в дополнительные таблицы, либо поместите все в одну большую таблицу.

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