Turtle_Fly, не могли бы Вы подробно описать эту схему (таблицы, поля, связи)?
Кстати, спасибо за подсказку, сделаю ещё одну таблицу для хранения групп пользователей :)
prometex добавил 12.12.2008 в 14:13
Я ошибался, в моём случае имеет место наследование, а не связь 1:1
Странно..
users:id (primary, autoincrement)
students:user_id (primary) -> users:id
teachers:user_id (primary) -> users:id
Пример записи
users:id [1,2,3,4,5,6,7,8]
students:user_id [1,2,3]
teachers:user_id [4,5,6]
sometable:user_id [7,8,...]
Если взять 20 групп по 15 параметров в каждой, то получим таблицу, у которой будет 300 полей!
Причём каждая запись будет заполнять только 15, а остальные 285 будут NULL - это лучше чем связь 1:1?
Именно 1:1
user_groups (id, name, rights)
users (id, group_id, name, login, password)
students (user_id, age, progress, grant)
teachers (user_id, hours, class, salary)
Выходит это единственное оптимальное решение..
Alipapa, предлагаете сделать так:
user_students (id, group_id, name, login, password, grants, ...)
user_teachers (id, group_id, name, login, password, salary, ...)
И при авторизации проверять каждую таблицу на соответствие login/password, и в процессе добавления пользователей следить чтобы login не совпадал с логинами из других таблиц?
prometex добавил 11.12.2008 в 12:06
Или так:
user_groups (id, name, rigths)
users (id, group_id, name, login, password, grants=NULL,salary=NULL, ...=NULL, 63-е ... =NULL)?
Чтобы получилась таблица с несколькими сотнями полей?
Turtle_Fly, не совсем понятно. Допустим у пользователей "преподаватели" зарплата, а у пользователей "студенты" - стипендия. Куда вы занесёте сумму, и как потом узнаете где зарплата и где стипендия?
prometex добавил 11.12.2008 в 11:42
В любом случае Вы не сможете задать тип данных для каждого параметра. У Вас поля и возраст и должность и дата и время будут иметь одинаковый тип varchar или ещё хуже text
ApocX, в БД.
Идентификатор в сессии это само сабой.
Из достоинств первого способа можно отметить очень быструю проверку доступа к странице и возможность создания страниц без запросов к БД.
Из недостатков я бы отметил то, что например, если админ решит срочно запретить доступ к странице, то пользователь всё равно будет иметь доступ до тех пор, пока не закончится его сессия.
Какие ещё могут быть достоинства и недостатки?
Неа... 🚬
Получается четыре таблицы:
1) Группы товаров (это может быть каталог)
2) Товары
3) Параметры товаров
4) Данные параметров
Отношения:
Товары - Группы товаров (М:1)
Параметры товаров - Группы товаров (М:1)
Данные параметров - Товары (М:1)
Данные параметров - Параметры товаров (М:1)
🍾
блин, точно! :)
как я сам не догадался...!?
спасибо дорогой!