2013-12-13 6 views
0

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

Я начинаю видеть, что у меня есть 2 категории, обычные пользователи и команды , Этот «трюк» работает подобно facebook, где пользователи могут создавать собственную команду, и они могут переключать proprety и получать контроль над ними командой.

Имеет 2 разных профиля, профиль пользователя и профиль команды. Мне нужно показывать сообщения, комментарии и фотографии.

Так что мой вопрос:

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

пример

table users -- user_posts 
table admin -- admin_posts 

или

table user --|__ posts // and have a column "type" on where if is 1 is user if is 2 is 
table team --| 
+0

Возможно, рассмотрим иерархическую структуру (в пределах одной таблицы), в которой 'команды' являются просто« потерянными пользователями »(пользователями без родителей). Итак, вы беспокоитесь только о пользователях, чей родитель имеет значение NULL. – Strawberry

ответ

0

Согласно команде/группе вещь, вы должны создать три таблицы:

  1. пользователей
  2. команды
  3. , какой пользователь находится в ч, с которыми предоставляются привилегии

Для 3 вы можете добавить вид enum с определенными правилами внутри вашего проекта ... например. admin, editor ... вы называете это.

+0

Спасибо за ответ, но пример, если мне нужно создать галерею, одну для пользователя и одну для команды. что вы предлагаете делать? одна таблица, называемая примерной галереей, имеющей 'id_photo - name_photo - id_poster - id_type', где id_type if is 1, я буду искать в пользователе таблицы пользователя-ответчика в столбце id_poster else if is 2 Я пойду в команду поиска с идентификатором столбца id_poster Или лучше сделать 2 разных таблицы, например photo_user и photo_team? – Fabrizio

1

Я бы выбрал второй вариант, который позволит вам более гибкое развитие позже.

table users 
user_id, password, team_ID, etc 

table team 
team_id, admin_id (FKEY from user_id), name, description, etc 
+0

Да, я уже установил такую ​​таблицу, но если тогда я хочу создать 2 галереи, один из пользователей, а другой из команды лучше иметь 2 таблицы типа team_photos и user_photos или только одну фотографию и иметь идентификатор для того, чтобы знать, является ли пользователь или команда? – Fabrizio

Смежные вопросы