Всем привет! Спроектировал две таблицы: 1. persons (для хранения всех людей) - id - user_id - first_name - last_name - gender - birthday - email - users (данные для пользователей) - id - first_name - last_name - gender - birthday - email - password - visit_at - status Поля почти одинаковые. Но придётся иметь две таблицы, иногда с дублированием данных. Так как человек может и не быть пользователем системы. Например, ребёнок, которому ещё три года. Или просто человек без доступа интернета. Но нам при этом все равно необходимо хранить его данные и связывать их с person. Вопрос собственно такой. На сайте будут личные сообщения, друзья, новости, рейтинг, отзывы и у меня возникает вопрос какие таблицы с чем связывать. Логично, что отзывы, новости, Сообщения, друзей могут иметь только пользователи. Так как необходимо иметь аккаунт чтобы добавить эти данные. Но вот рейтинг может иметь любой человек, даже без аккаунта. И эти данные связывать нужно с person. Верно? Тогда как выводить данные в профиле. И что будет профилем? Person или Users? Кроме того нам нужно будет выводить общий список людей. Например, как Вконтакте список людей и поиск по нему. Какую таблицу брать за основу? Person? Ещё один момент, что у людей может быть несколько ролей. И person будет дополняться связующими таблицами с дополнительными полями person_judge, person_dancer, person_organizator....
если человек имеет доступ 1, если нет 0. Таблица одна - users (данные для пользователей) - id - first_name - last_name - gender - birthday - email - password - visit_at - status - dostup
@Artur_hopf, у человека нормализация ломает архитектуру, а это уже диагноз, так что аккуратнее с советами
Здесь либо зависимый: persons: - id - name - gender - email users: - person_id - email - password - visit_at - status Либо обратный зависимый: persons: - id - user_id / NULL - name - gender - email users: - id - email - password - visit_at - status Либо с общим id без зависимостей: persons: - id - name - gender - email users: - id - email - password - visit_at - status Все варианты рабочие.