За последние 24 часа нас посетил 34161 программист и 1742 робота. Сейчас ищут 977 программистов ...

Регистрация пользователей

Тема в разделе "PHP и базы данных", создана пользователем TigerZaka, 30 июл 2012.

  1. TigerZaka

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

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    Приветствую всех! Ребят, подскажите, хочу сделать регистрацию пользователей. У меня будет 2 вида посетителей: обычные физ.лица и организации. Вопрос, как лучше составить структуру БД ? Таблицу на каждый вид или всех в одну, а потом группы ?
     
  2. oksana

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

    С нами с:
    16 мар 2012
    Сообщения:
    221
    Симпатии:
    0
    Думаю что лучше одну и сделать поле группа и в ней указать физ или орг =)
     
  3. TigerZaka

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

    С нами с:
    16 сен 2011
    Сообщения:
    189
    Симпатии:
    1
    спасибо )
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    хзхз
    у них разные параметры.

    можно держать в одной таблице, можно в двух, можно в трех =)
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Есть очень популярная ( :D ) ошибка начинающих программистов: делают одну таблицу для простых юзеров, одну для админов, потом при каждом чихе еще по таблице на каждый тип пользователя. Это порождает чудовищные проблемы в сопровождении, стоимость поддержки растет экпоненциально.
    Нормальный способ: все пользователи — это пользователи (КЭП).
    Пользователь имеет атрибут "группа" или "роль", детали уже зависят от контекста. Если вдруг необходимо, заводим вторичную таблицу с тем же PK == user_id где храним доп. атрибуты для админа, но можно обойтись и одной. Если у вас возникают позывы в дополнительной таблице, первое, о чем надо подумать — а не являются ли эти доп. атрибуты атрибутами таблицы "группа". Другими словами права должны быть общими для всех админов, всех юзеров, модераторов и т.п.
    В русской википедии можно найти море полезной инфы по моделям управления правами.
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    мне кажется тут три таблицы самое то.
     
  7. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    *Записывает igordata в начинающие* )))
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нет, серьёзно. Если заведомо известно, что тут будут только физики и юрики, то можно все логины и прочую общую инфу хранить в одной таблице. А подробности, которые кроме как раз в сто лет используются - в двух других таблицах.
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    у тебя есть таблица "пользователи" где и те и другие? есть уникальный id?

    Добавлено спустя 4 минуты 42 секунды:
    я так и не понял из твоего предложения что где хранится
     
  10. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Да пофик.
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Тысяча чертей! Я написал пространный пост и он куда-то продевался, видимо Отправить забыл нажать!!!
    Короче, топикстартер,
    1. таблицу Пользователи делай для всех без исключения пользователей, тип указывай как users.group_id
    2. скорее всего кому-то из Юриков захочется иметь несколько пользователей на одно юрлицо. Поэтому таблица Клиент это отдельная сущность. Связываем как users.client_id=clients.id
    3. атрибуты всех видов клиентов юриков и физиков можно держать в одной большой таблице ИЛИ в еще одном уровне таблиц — это уже вопрос религиозный, по логике приложения ничего не меняет, но влияет на производительность запросов.