Таблица writer_permissions служит для присвоения редакторам прав управления тем или иным разделам. Кстати, редакторы определяются в последней таблице writers последним полем editor.
Таблица 5. Структура таблицы writers базы данных
Поле | Тип |
username | varchar(16) |
password | varchar(16) |
full_name | text |
editor | char(1) |
Подчеркнутые поля в приведенных таблицах означают, что данное поле является индексом всей таблицы.
Заключение
Итак, в своей курсовой работе я постарался собрать воедино наиболее важную и актуальную информацию по разработке информационных систем вообще и подсистему документооборота в частности.
Были исследованы и проанализированы основные принципы создания ИС, ее структура и функциональность, взаимодействие основных компонентов.
Также были рассмотрены новейшие и наиболее перспективные Web-технологии, которые уже сегодня с успехом использует при создании и обслуживании информационных серверов, содержащих в себе гигантские объемы информации.
Была разработана, создана и протестирована собственная подсистема документооборота, в которой реализовались основные принципы построения и взаимодействия ИС, а также основная функциональность работы.
1. Веллинг Л., Томасон Л. Разработка Web-приложений с помощью PHP и MySQL – М.: Издательский дом «Вильямс», – 2003. – 800с.: ил.
2. Гилмор В. PHP 4. Учебный курс – СПб.: «Питер», – 2001. – 352с.: ил.
3. Курбацкий А. Н. Автоматизация обработки документов - Мн.: БГУ, 1999. - 221с.: ил.
Приложение 1. Листинги SQL-запросов по созданию таблиц
Листинг 1. SQL-запрос создания таблиц базы данных
# БД : `content`# # -------------------------------------------------------- ## Структура таблицы `keywords`# CREATE TABLE `keywords` ( `story` int(11) NOT NULL default '0', `keyword` varchar(32) NOT NULL default '', `weight` int(11) NOT NULL default '0') TYPE=MyISAM; # -------------------------------------------------------- ## Структура таблицы `messages`# CREATE TABLE `messages` ( `message_id` int(11) NOT NULL auto_increment, `from_user` varchar(16) NOT NULL default '', `to_user` varchar(16) NOT NULL default '', `body` text, `read` char(1) NOT NULL default '0', `date` int(11) default NULL, PRIMARY KEY (`message_id`)) TYPE=MyISAM AUTO_INCREMENT=20 ; # -------------------------------------------------------- ## Структура таблицы `pages`# CREATE TABLE `pages` ( `code` varchar(16) NOT NULL default '', `description` text, PRIMARY KEY (`code`)) TYPE=MyISAM; # -------------------------------------------------------- ## Структура таблицы `stories`# CREATE TABLE `stories` ( `id` int(11) NOT NULL auto_increment, `writer` varchar(16) NOT NULL default '', `page` varchar(16) NOT NULL default '', `headline` text, `story_text` text, `picture` text, `created` int(11) default NULL, `modified` int(11) default NULL, `published` int(11) default NULL, `for_admin` char(1) NOT NULL default '0', PRIMARY KEY (`id`)) TYPE=MyISAM AUTO_INCREMENT=65 ; ## Структура таблицы `writer_permissions`# CREATE TABLE `writer_permissions` ( `writer` varchar(16) NOT NULL default '', `page` varchar(16) NOT NULL default '') TYPE=MyISAM; # -------------------------------------------------------- ## Структура таблицы `writers`# CREATE TABLE `writers` ( `username` varchar(16) NOT NULL default '', `password` varchar(16) NOT NULL default '', `full_name` text, `editor` char(1) NOT NULL default '0', PRIMARY KEY (`username`)) TYPE=MyISAM;Приложение 2. Листинги основных PHP скриптов
Листинг 2. Файл stories.php (основной файл системы)
<?php// **************// Подключение библиотеки с функциями include('include_fns.php');include('header.php'); // **************// Проверка входа в систему if (!check_auth_user()) {?><form action="login.php" method="post"><table border="0"><tr> <td>Если Вы новый пользователь, то зарегистрироваться можно <a href=add_new_user.php>тут</a>.</td></tr></table><br><table border="0"><tr> <td>Вход:</td></tr><tr> <td>Логин:</td> <td><input size="16" name="username"></td></tr><tr> <td>Пароль:</td> <td><input size="16" type="password" name="password"></td></tr></table><input type="submit" value="Пуск!"> </form><? }else { $conn = db_connect(); $w = get_writer_record($HTTP_SESSION_VARS['auth_user']); print 'Привет, '.$w['full_name']; print ' (<a href="change_passwd_form.php">Поменять пароль</a>)'; print ' '; print ' (<a href="logout.php">Выход</a>)'; print '<p>'; $sql = 'select * from stories where writer = \''. $HTTP_SESSION_VARS['auth_user'].'\' order by created desc'; $result = mysql_query($sql, $conn); print 'Ваши статьи: '; print mysql_num_rows($result); print ' (<a href="story_add.php">Добавить</a>)'; print '</p><br /><br />'; if (mysql_num_rows($result)) { print '<table border=1>'; print '<tr><th>Заголовок:</th><th>Раздел:</th>'; print '<th>Дата создания:</th><th>Последнее изменение:</th><th>Действия:</th></tr>'; while ($qry = mysql_fetch_array($result)) { print '<tr>'; print '<td>'; print $qry['headline']; print '</td>'; print '<td>'; print $qry['page']; print '</td>'; print '<td>'; print date('M d, Y H:i', $qry['created']); print '</td>'; print '<td>'; print date('M d, Y H:i', $qry['modified']); print '</td>'; print '<td>'; if ($qry['published']) print '[Напечатано '.date('M d, H:i', $qry['published']).']'; else { if ($qry['for_admin']) print 'Ожидает проверки администратором...'; else { print '[<a href="story.php?story='.$qry['id'].'">Ред.</a>] '; print '[<a href="delete_story.php?story='.$qry['id'].'">Удал.</a>] '; print '[<a href="keywords.php?story='.$qry['id'].'">Слова</a>]'; } } print '</td>'; print '</tr>'; } print '</table>'; }print ('<table>');print ('<br>'); print ' (<a href="message_add.php">Написать сообщение</a>)';print ('</table>'); // **************// Меню редактора $conn = db_connect();$sql = 'select * from writers where username = \''. $HTTP_SESSION_VARS['auth_user'].'\' ';$result = mysql_query($sql, $conn);$qry = mysql_fetch_array($result);if ($qry['editor']) { editor_menu ($HTTP_SESSION_VARS['auth_user']);} // **************// Меню сообщений $conn = db_connect();$sql = 'SELECT * FROM messages WHERE to_user = \''. $HTTP_SESSION_VARS['auth_user'].'\' order by date desc ';$result = mysql_query($sql, $conn);$num_results = mysql_num_rows($result);if ($qry) {if ($num_results) { print ('<table>'); print ('<br><br> -------------------------- <br>'); print ('<b>Раздел сообщений:</b>'); print ('</table>'); print '<table border=1>'; print '<tr><th>От:</th><th>Текст:</th>'; print '<th>Дата:</th><th>Действия:</th></tr>'; for ($i=0; $i < $num_results; $i++) { $qry = mysql_fetch_array($result); print '<tr>'; print '<td>'; print $qry['from_user']; print '</td>'; print '<td>'; print $qry['body']; print '</td>'; print '<td>'; print date('M d, H:i, Y', $qry['date']); print '</td>'; print '<td>'; print '[<a href="message_add.php?to_user='.$qry['from_user'].'">Ответить</a>] '; print '[<a href="delete_message.php?message_id='.$qry['message_id'].'">Удал.</a>] '; print '</td>'; print '<td>'; if (!$qry['read']) print ('NEW!'); print '</td>'; print '</tr>'; } $conn = db_connect(); $sql = 'UPDATE `messages` SET `read` = \'1\' WHERE `to_user` = \''. $HTTP_SESSION_VARS['auth_user'].'\' '; $result = mysql_query($sql, $conn); print '</table>'; } } } include('footer.php'); ?>