За последние 24 часа нас посетили 22936 программистов и 1265 роботов. Сейчас ищут 785 программистов ...

Как работать с таблицами person и users?

Тема в разделе "MySQL", создана пользователем myks92, 23 июн 2019.

  1. myks92

    myks92 Новичок

    С нами с:
    12 июн 2018
    Сообщения:
    45
    Симпатии:
    1
    Всем привет!

    Спроектировал две таблицы:
    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....
     
  2. Artur_hopf

    Artur_hopf Активный пользователь

    С нами с:
    7 май 2018
    Сообщения:
    2.266
    Симпатии:
    405
    если человек имеет доступ 1, если нет 0. Таблица одна
    - users (данные для пользователей)
    - id
    - first_name
    - last_name
    - gender
    - birthday
    - email
    - password
    - visit_at
    - status
    - dostup
     
  3. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @Artur_hopf, у человека нормализация ломает архитектуру, а это уже диагноз, так что аккуратнее с советами :)
     
  4. ElisDN

    ElisDN Активный пользователь

    С нами с:
    13 фев 2018
    Сообщения:
    605
    Симпатии:
    130
    Здесь либо зависимый:

    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

    Все варианты рабочие.
     
    #4 ElisDN, 23 июн 2019
    Последнее редактирование: 23 июн 2019
    myks92 нравится это.
  5. myks92

    myks92 Новичок

    С нами с:
    12 июн 2018
    Сообщения:
    45
    Симпатии:
    1
    Благодарю!))