К коммерческим продуктам относятся такие как, 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