![]() |
![]() |
| http://kurepin.ru/php/slang.ru/5/ |
|
Строим сайт Глава 5. Планирование-3: пользователи, группирование словарей Создав таблицу пользователей и связав ее с таблицей словарей, надобно застолбить и функции для работы с пользователями. Я так мыслю, что юзерским функциям самое место в классе class_user. Создадим, породив от класса class_dic, и наполним его переменными и функциями. Переменные: highlight_string(' // пользователь var $u_login, $u_pass, $u_fname, $u_lname, $u_semail, $u_pemail, $u_copi, $u_text; ?>');?> Функции: highlight_string(' function user_add() // добавление пользователя { } function user_update() // изменение описания пользователя { } function user_delete() // удаление пользователя { } function user_info() // получение информации о пользователе { } ?>');?> Тут все стандартно, это ведь пока еще планирование, а не программирование. Переходим к водным процедурам. То есть, простите, переходим к описанию функций по управлению атрибутами доступа. Полагаю, надо их разместить в том же классе - class_user: highlight_string(' // права доступа function user_dic_rights() { } ?>');?> Полагаю, одной функции для полного управления правами нам должно хватить. А если не хватит - сделаем другие, нам это не сложно. Вот так у нас теперь выглядит файл user.class: highlight_string(' require(str_replace(\'/www\',\'/req\',$_SERVER[\'DOCUMENT_ROOT\']).\'/dic.class\'); class class_user extends class_dic { // пользователь var $u_login, $u_pass, $u_fname, $u_lname, $u_semail, $u_pemail, $u_copi, $u_text; function user_add() // добавление пользователя { } function user_update() // изменение описания пользователя { } function user_delete() // удаление пользователя { } function user_info() // получение информации о пользователе { } // права доступа function user_dic_rights() { } } // class ?>');?> Похоже, мы спланировали все, что касалось добавления данных в базу: управляем словами, управляем словарями, управляем пользователями и доступом. Что еще? Ах, да, я совсем забыл про группирование словарей. Согласитесь, если в базе данных окажется несколько десятков медицинских словарей, то почему бы их не собрать в тематическую группу? А как полезно разделить словари по языковому признаку... В общем, давайте разрабатывать группирование словарей. Я предлагаю принцип, схожий с нашей реализацией связи между пользователями и словарями. То есть, создаем таблицу тем и таблицу связей между темами и словарями. Получится достаточно гибко, как мне кажется.
create table tbl_theme
(
t_id smallint unsigned not null auto_increment primary key,
t_name varchar(100) not null default '',
t_enable enum('Y','N') not null default 'Y'
);
create table tbl_theme_dic
(
td_id int unsigned not null auto_increment primary key,
td_theme smallint unsigned not null,
td_dic smallint unsigned not null,
td_type enum('D','M') not null default 'D',
td_enable enum('Y','N') not null default 'Y'
);
Тут, пожалуй, надо объяснить только поле td_type из второй таблицы. Это поле я добавил на подсознательном уровне. Оно описывает тип связи словаря с темой. Как это будет использоваться я пока сказать не могу, поэтому поле описал как двухвариантное: [D]irectly и [M]arginally. То есть непосредственное отношение словаря к теме и посредственное, косвенное. На тему многоязычности словарей надо будет думать отдельно, поэтому пока опустим эту задачу. Добавим тестовые записи в эти таблицы? Пожалуй, что:
insert into tbl_theme(t_name) values('Тестирование системы');
insert into tbl_theme_dic(td_theme, td_dic) values(1,1);
И добавим управление этими связями в класс словарей (class_dic): highlight_string(' // тематические группы function theme_add() // добавить тему { } function theme_update() // изменить тему { } function theme_delete() // удалить тему { } function theme_dic() // управление связями { } ?>');?> Теперь с добавлением данных все? По-моему, все. Пошли дальше... 04.08.04 |
| реклама на сайте |
|
…
|
| copyright ©2000-2002 Ruslan Kurepin |