За последние 24 часа нас посетили 62297 программистов и 1603 робота. Сейчас ищут 897 программистов ...

как лучше хранить данные

Тема в разделе "Прочие вопросы по PHP", создана пользователем crautcher, 9 авг 2011.

  1. crautcher

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

    С нами с:
    21 май 2011
    Сообщения:
    156
    Симпатии:
    0
    в общем есть элементы сайта которые, либо показываются, либо нет юзеру - каждому по своему . Как лучше сохранить разрешение на показ каждого элемента . Сперва думал в таблице пользователя , ток вот список элементов будет постояно увеличиватся и тогда мне придется к каждому юзеру в таблицу добавлять новый елемент...
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Например, сделать табличку типа access какой-нибудь

    [sql]CREATE TABLE `users_access` (
    `user_id` INT UNSIGNED NOT NULL DEFAULT 1,
    `element_id` INT UNSIGNED NOT NULL DEFAULT 1,
    UNIQUE KEY(`user_id`, `element_id`)
    );[/sql]
    И проверять по ней, есть ли у такого-то пользователя доступ к такому-то элементу
     
  3. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    При постоянно растущем наборе прав и большом числе пользователей индивидуальная раздача прав или раздача на базе групп превращается в гемор. "Роли" помогут.

    Wiki:
    http://ru.wikipedia.org/wiki/RBAC

    Yii framework:
    интерфейс http://yiiframework.ru/doc/guide/ru/topics.auth
    вариант реализации:
    http://yiiframework.ru/doc/cookbook/ru/access.rbac.file
     
  4. armadillo

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

    С нами с:
    6 апр 2007
    Сообщения:
    2.380
    Симпатии:
    0
    Адрес:
    Russia, Moscow
    вот у меня 10к юзеров, порядка 1кк документов, юзер включен в от 3 до 500 групп, которые могут иметь по конкретному документу от 1 до 15 ролей.
    задача: вывести все документы, которые видит данный пользователь.