Мегаобучалка Главная | О нас | Обратная связь


Разработка схемы данных



2019-07-03 224 Обсуждений (0)
Разработка схемы данных 0.00 из 5.00 0 оценок




Для хранения данных в разрабатываемом приложении используется БД MySQL, формат данных которой принято представлять в табличной форме. Структурную схему базы данных электронной доски объявлений можно представить в виде набора из восьми таблиц, информация в каждой из которых группируется по смысловому и функциональному назначению и хранится в различных полях. Таким образом, приложение с помощью SQL-запросов обращается к БД только к нужным таблицам и полям и затем выполняет различные операции с полученными данными. Благодаря такому механизму достигается увеличение скорости обмена данными между приложением и БД.

По типу и функциональному назначению все таблицы проекта можно разделить на:

1) Статические таблицы - предназначены для хранения основных параметров электронной доски объявлений и типов объявлений. Число записей в этих таблицах в процессе работы приложения не меняется, первоначальные значения полей заносятся при инсталляции

2) Динамические таблицы – используются для хранения информации о разделах и подразделах каталога, пользователях и их правах доступа. Так же сюда следует отнести таблицы, в которых хранятся объявления и данные о почтовой рассылке и таблицу сессий, используемую для авторизации пользователей. Число записей во всех вышеперечисленных таблицах меняется динамически во время работы программы, что накладывает дополнительные требования на общий размер предоставляемой БД.

Рассмотрим назначение и структуру таблиц, используемых в проекте:

1. Таблица OPTIONS.

Статическая таблица, предназначена для хранения основных параметров электронной доски объявлений, состоит из трёх полей:

 

id name value

 

id – порядковым номер записи, тип поля smallint (допустимое значение до 32767), ключевое.

name – название параметра, тип поля text (до 65535 символов)

value – значение параметра, тип text.

В данной версии проекта в таблице содержится шесть записей, которые заносятся при инсталляции. Содержание записей поля name: название BBS, число отображаемых на одной странице объявлений, максимальное время жизни объявления, рассылка объявлений по почте, удаление объявлений по истечению времени жизни, максимальный размер объявления.

При необходимости администратор может изменить любое из первоначальных значений поля value.

2. Таблица ACTION.

Статическая таблица, содержит тип объявлений, состоит всего из двух полей:

 

id action

 

id – порядковым номер записи, тип поля smallint, ключевое.

action – название типа объявления, тип поля text.

Содержание записей поля action: предложение, спрос, обмен, аренда, прочее. Значения полей задаются автоматически в процессе инсталляции и в последующем времени не изменяются.

3. Таблица SUBJECT.

Предназначена для хранения индекса основного каталога (содержит информацию о структуре разделов и подразделов, образующих каталог).

id topic name

 

id – идентификатор раздела или подраздела, тип поля int (значение до 2 147 483 647), ключевое. Для того чтобы данный идентификатор был уникальным (с неповторяющимися значениями), полю назначен дополнительный тип auto_increment. При первоначальном создании таблицы значение этого поля равно единице, при добавлении новой записи его значение автоматически инкрементируется. Поскольку удаление записей из таблицы не влияет на значение этого счётчика, мы получаем уникальность идентификатора записи. Для оптимизации поиска по таблице устанавливаем тип поля index.

topic – значение идентификатора раздела каталога, тип поля int, ключевое. Если данная запись описывает не подраздел, а корневой раздел каталога, то значение поля равно 0.

name – название раздела или подраздела каталога, тип поля text.

Поскольку администратор каталога может добавлять и удалять разделы и подразделы, число записей в этой таблице непостоянно.

4. Таблица USERS.

Содержит информацию о зарегистрированных пользователях.

 

id login password contact access

 

id – идентификатор пользователя, тип поля int, ключевое, auto_increment, index.

login – логин пользователя, тип поля text.

password – 32-х символьный хэш-код пароля пользователя, тип поля text.

contact – контактная информация пользователя, тип поля text.

access – права доступа, тип поля smallint. 0 - администратор, 1 – пользователь, 2 – модератор.

5. Таблица MESSAGES.

Предназначена для хранения текста объявлений и их параметров, заданных отправителем.

 

id topic_id user_id action_id time time_live text

 

id – идентификатор объявления, тип поля int, ключевое, auto_increment, index.

topic _ id – значение идентификатора подраздела каталога, тип поля int, index.

user _ id – значение идентификатора отправителя (пользователя), тип поля int.

action _ id – значение идентификатора типа объявления, тип поля smallint.

time – дата написания объявления, тип поля text.

time _ live – время удаления объявления в UNIX-формате, тип поля bigint.

text – текст объявления, тип поля text.

6. Таблица MAIL.

Содержит адреса и параметры, использующиеся для почтовой рассылки объявлений.

 

id user_id email activation time

 

id – идентификатор записи, тип поля int, ключевое, auto_increment, index.

user _ id – значение идентификатора отправителя (пользователя), тип поля int.

email – почтовый адрес подписчика на рассылку, тип поля text.

activation – код для активации, тип поля text. После подтверждения активации значение поля равно 1. При временном выключении рассылки значение поля 0.

time – содержит значение времени в UNIX-формате, по истечению которого не активированная запись будет автоматически удалена из таблицы, тип поля bigint.

7. Таблица MAILSUB.

Описывает связь между подразделами и адресами подписчиков, которая используется для почтовой рассылки объявлений.

 

mail_id topic_id

 

mail _ id – значение идентификатора записи подписчика в таблице MAIL, тип поля int, index.

topic _ id – значение идентификатора подраздела, на который оформлена подписка, тип поля int, index.

 

8. Таблица SESSIONS.

 

Содержит значения идентификаторов сессий авторизованных пользователей, используется для реализации механизма безопасной аутентификации.

 

user_id sid time

 

user _ id – значение идентификатора пользователя в таблице USERS, тип поля int.

sid – идентификатор сессии авторизованного пользователя, тип поля text.

time – значение времени в UNIX-формате, по истечению которого не продленная сессия будет автоматически удалена из таблицы, тип поля bigint.

Связи между полями таблиц приведены на рис. 2.1 структурной схемы данных. Ключевые поля-идентификаторы помечены знаком “*”, типы используемых связей: “один ко многим” и “один к одному”.

 

Рис. 2.1 - Схема данных

 



2019-07-03 224 Обсуждений (0)
Разработка схемы данных 0.00 из 5.00 0 оценок









Обсуждение в статье: Разработка схемы данных

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (224)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)