К коммерческим продуктам относятся такие как, Oracle, MsSQL, Informix.
По понятным причинам выбор производился из некоммерческих продуктов. Среди них MySQL выделяется удачным сочетанием простоты, мощности и приспособленности к разработке интернет проектов.
2.4.5. Выбор инструмента.
В качестве основного языка программирования выбран PHP 4.1.2.
Средства разработки позволяющие интегрировать HTML с базами данных, делятся на языки высокого уровня и интерпретаторы. При использовании языков высокого уровня трудоемкость при создании даже небольшого WEB проекта исчисляется в человекогодах. При выборе между PHP и Perl, выбор в пользу PHP был сделан по следующим причинам:
1. Простота освоения и использования.
2. Прозрачность синтаксиса.
3. Мощные средства взаимодействия с БД.
4. Скорость работы.
По этим показателям, кроме скорости выбор был остановлен на PHP.
2.5. Архитектура БД.
2.5.1. Таблицы БД.
Ø Таблицы зарегистрированных пользователей для хранения информации о зарегистрированных пользователях (USER).
2. Regisration and privelege users
2.1.(7) IUSER // основная информация о пользователе системы (идентификатор)
+-----------+------------------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+-----------+------------------+------+-----+---------+----------------+
iu int(10) unsigned PRI NULL auto_increment
login char(32)
passw char(32)
privelege tinyint(4) 0
+-----------+------------------+------+-----+---------+----------------+
Ø Таблицы для авторов и источников.
1.3 Autors and sourses
1.3.1.(3) IAUTOR // справочник (идентификатор) персоналий и источников
+-------+------------------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+-------+------------------+------+-----+---------+----------------+
ia int(10) unsigned PRI NULL auto_increment
name1 char(128) YES NULL
name2 char(128) YES NULL
name3 char(128) YES NULL
year smallint(6) unsigned YES NULL
month smallint(6) unsigned YES NULL
day smallint(6) unsigned YES NULL
type char(1) YES NULL
+-------+------------------+------+-----+---------+----------------+
1.3.2.(4) IA_EXT // дополнительная таблица справочника персоналий и источников
+-------------+------------------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+-------------+------------------+------+-----+---------+----------------+
last_upgr timestamp(14) YES NULL
first_enter timestamp(14) YES NULL
ia int(10) unsigned PRI NULL auto_increment
last_iu int(10) unsigned 0
first_iu int(10) unsigned 0
titul varchar(128) YES NULL
biography blob YES NULL
coordinate varchar(128) YES NULL
+-------------+------------------+------+-----+---------+----------------+
Ø Таблицы для рубрикатора.
1.4 Rubrics
1.4.1.(6) IHEAD // справочник (идентификатор) рубрик
+--------+------------------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+--------+------------------+------+-----+---------+----------------+
ih int(10) unsigned PRI NULL auto_increment
ihu int(10) unsigned 0
header char(128)
+--------+------------------+------+-----+---------+----------------+
Ø Таблицы для языка.
1.2.(2) LANGUAGE // справочник языков
+----------+---------------------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+----------+---------------------+------+-----+---------+----------------+
il tinyint(3) unsigned PRI NULL auto_increment
language char(32)
+----------+---------------------+------+-----+---------+----------------+
Ø Таблицы для документов.
3. Documents
3.1.(11) IDOC // идентификаторы документа
+---------+---------------------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+---------+---------------------+------+-----+---------+----------------+
id int(10) unsigned PRI NULL auto_increment
il tinyint(3) unsigned 0
name char(127) YES NULL
keyword char(255) YES NULL
access tinyint(4) unsigned 100
+---------+---------------------+------+-----+---------+----------------+
3.2.(12) ID_EXT // дополнительная информация о документе
+-------------+------------------+------+-----+---------+-------+
Field Type Null Key Default Extra
+-------------+------------------+------+-----+---------+-------+
id int(10) unsigned PRI 0
last_upgr timestamp(14) YES NULL
first_enter timestamp(14) YES NULL
last_iu int(10) unsigned 0
first_iu int(10) unsigned 0
year smallint(5) unsigned YES NULL
month tinyint(2) unsigned YES NULL
day tinyint(2) unsigned YES NULL
locate varchar(127) YES NULL
PS text YES NULL
+-------------+------------------+------+-----+---------+-------+
3.3.(14) D_TXT // основная БД документов
+----------+------------------+------+-----+---------+-------+
Field Type Null Key Default Extra
+----------+------------------+------+-----+---------+-------+
id int(10) unsigned PRI 0
pname1 varchar(127) YES NULL
pname2 varchar(127) YES NULL
abstract blob YES NULL
TXT mediumblob YES NULL
+----------+------------------+------+-----+---------+-------+
3.4.(15) D_EXT // приложения к БД документов
+-----------+------------------+------+-----+---------+-------+
Field Type Null Key Default Extra
+-----------+------------------+------+-----+---------+-------+
id_ext int(10) unsigned PRI NULL auto_increment
id int(10) unsigned 0
gruffito varchar(255) YES NULL
file_link varchar(128) YES NULL
+-----------+------------------+------+-----+---------+-------+
Ø Таблица связей.
3.5 Link-tables
3.5.1(16) ID_IA // таблица связи документа с авторами и источниками
+-------+------------------+------+-----+---------+-------+
Field Type Null Key Default Extra
+-------+------------------+------+-----+---------+-------+
id int(10) unsigned 0
ia int(10) unsigned 0
+-------+------------------+------+-----+---------+-------+
3.5.2(17) ID_IH // таблица связи документа с рубриками
+-------+------------------+------+-----+---------+-------+
Field Type Null Key Default Extra
+-------+------------------+------+-----+---------+-------+
id int(10) unsigned PRI 0
ih int(10) unsigned 0
+-------+------------------+------+-----+---------+-------+
2.6. Разработка основных программных объектов.
2.6.1. Главная форма.
Формируется из шаблона в формате HTML, путем включения в него (шаблон) результатов запроса к базе данных. А так же других элементов главной страницы (Поиск, Регистрация, Чаво).
Основной элемент первой страницы, формируемый на основе запроса к БД – это рубрикатор.

2.6.2. Рубрикатор.
Формируется на основе таблицы MySQL “IHEAD”.
1.4 Rubrics
1.4.1.(6) IHEAD // справочник (идентификатор) рубрик
+--------+------------------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+--------+------------------+------+-----+---------+----------------+
ih int(10) unsigned PRI NULL auto_increment
ihu int(10) unsigned 0
header char(128)
+--------+------------------+------+-----+---------+----------------+
Запросы MySQL формируют 3 уровня вложенности рубрикатора:
Спускаясь по уровням рубрикатора пользователь получает список публикаций (документов, единиц хранения), при этом если список состоит более чем из 100 единиц, формируются ссылки на каждую следующую сотню элементов списка. Выбор любого из элементов списка приводит к отображению выходной формы документа.
2.6.3. Форма поиска.
Поиск в БД организован следующим образом. С помощью тривиальной формы организуется ввод пользователем образца для поиска. Образец может включать в себя до 128 символов.

Введенный образец анализируется программой: из него исключаются знаки пунктуации, цифры и лишние пробелы. Полученный результат преобразуется в массив слов.
Логика поиска: в запросе к БД участвуют все элементы полученного массива слов, связанные логическим оператором «ИЛИ» , т. е. в БД происходит поиск каждого из слов (элементов массива). Например, если пользователь запросил «Федеральные округа России», то в результате запроса будут включены и «Федеральные законы», и «Избирательные округа» и все документы, содержащие слово «Россия».
Структура БД организована таким образом:
Structure tables DB naslDB
1. References
1.1.(1) COUNTRY // справочник стран
+-------+-----------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+-------+-----------+------+-----+---------+----------------+
itype int(11) PRI NULL auto_increment
type char(128)
+-------+-----------+------+-----+---------+----------------+
1.2.(2) LANGUAGE // справочник языков
+----------+---------------------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+----------+---------------------+------+-----+---------+----------------+
il tinyint(3) unsigned PRI NULL auto_increment
language char(32)
+----------+---------------------+------+-----+---------+----------------+
1.3 Autors and sourses
1.3.1.(3) IAUTOR // справочник (идентификатор) персоналий и источников
+-------+------------------+------+-----+---------+----------------+
Field Type Null Key Default Extra
+-------+------------------+------+-----+---------+----------------+
ia int(10) unsigned PRI NULL auto_increment
name1 char(128) YES NULL
name2 char(128) YES NULL
name3 char(128) YES NULL
year smallint(6) unsigned YES NULL
month smallint(6) unsigned YES NULL
day smallint(6) unsigned YES NULL
type char(1) YES NULL
+-------+------------------+------+-----+---------+----------------+
1.3.2.(4) IA_EXT // дополнительная таблица справочника персоналий и источников
+-------------+------------------+------+-----+---------+----------------+
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


