82952 (688620), страница 4

Файл №688620 82952 (Информационные технологии в маркетинге) 4 страница82952 (688620) страница 42016-07-31СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 4)

Первичный ключ - поле или набор полей таблицы, однозначно идентифицирующие каждую строку.

Рекурсивный внешний ключ - внешний ключ, ссылающийся на запись в собственной реляционной таблице.

Рекурсивный внешний ключ в нашем случае позволяет создавать вложенность категорий. Для указания корневой директории вводится логическое ограничение: корневая категория имеет идентификатор с первичным ключом Id=0.

Тип данных для полей Id и ParentCategory выбран исходя из того, что категорий в несколько раз меньше, чем товаров, и для нашего небольшого магазина вполне достаточно зарезервировать 65535 категорий/подкатегорий; для обоих полей используется тип SMALLINT UNSIGNED.

Поле Name имеет максимальную длину 32 символа, но этого достаточно, потому что название категории должно описываться одним, максимум двумя-тремя словами.

Как уже упоминалось выше, описать параметры книги можно в одной таблице, но можно вынести описание в несколько отдельных таблиц, это позволит повысить информативность Интернет-каталога и сведений о товарах, которые в нем представлены, а также упростит возможные изменения структуры базы данных в будущем. Таким образом, в нашем примере книги будут описаны тремя логически связанными таблицами:

таблицей информации о товарах, в которой описаны основные параметры книг (Books);

  1. таблицей информации об авторах, в которой хранятся данные об авторах книг, представленных в Интернет-магазине (Authors);

  2. таблицей информации об издательствах (Publishers).

Параметры таблицы товаров Books описаны в таблице 3.

Таблица 3. Поля таблицы книг (Books).

Поле таблицы

Тип данных

Описание

Id

MEDIUMINT UNSIGNED

Уникальный идентификатор товара

Category

SMALLINT UNSIGNED

Категория, к которой относится данная книга

Name

VARCHAR(255)

Название книги

Author

SMALLINT UNSIGNED

Автор книги

Publisher

SMALLINT UNSIGNED

Издательство

ISBN

CHAR(13)

Уникальный номер книги ISBN

ImageHREF

VARCHAR(255)

Путь к файлу изображения обложки книги

Synopsis

TEXT

Краткое описание

PagesCount

SMALLINT

Число страниц

PublicationDate

YEAR

Дата публикации

AppearDate

DATE

Время поступления книги в магазин

Price

DECIMAL(6,2)

Цена книги

Типы данных для полей определены в соответствии с особенностями реальных свойств товара и специфическими свойствами базы данных MySQL. Так, для названия книги (поле Name) определена максимальная длина 255 символов, и используется тип VARCHAR, а не CHAR, поскольку число букв в названии книг может быть различным. Использование полей переменной длины позволяет избежать хранения ненужной информации.

Вообще говоря, вопрос не так однозначен, поскольку браузеры удаляют двойные пробелы в соответствии со спецификацией HTML, а таблицы с постоянной длиной записи обрабатываются быстрее таблиц с переменной длиной записи. Но в нашем случае тип переменной длины (VARCHAR, TEXT) используется и в других полях таблицы, поэтому использование типа CHAR не повлияет качественно на скорость обработки записей.

Длина поля определяется максимально возможными или достаточными для большинства записей значениями. Так, для полей названия книги (поле Name) и краткого описания (поле Synopsis) определена длина 255 символов, чтобы гарантировать правильное представление наименования и описания товара. В то же время для поля ISBN 13 символов достаточно, чтобы точно описать уникальный ISBN- номер книги.

Номер в данном случае описывается в символьном виде, поскольку ISBN может иметь вид как "1-123-12345-1", так и "1-1234-1234-1".

Файлы с изображениями разработчики MySQL рекомендуют хранить в виде внешних файлов на диске, а в базе данных MySQL указывать только пути к этим файлам -- это существенно увеличивает скорость работы базы данных и приложения в целом, позволяет кэшировать изображения на стороне HTTP-сервера. Максимальная длина пути файла в большинстве операционных систем ограничивается 255 символами. Для описания числа страниц (поле PagesCount) достаточно предусмотреть тип SMALLINT, использующий 2 бита или диапазон от -32768 до +32767. Нам совсем не требуется так много, но следующий меньший тип TINYINT соответствует диапазону -128 до +127, или максимально 255 (в случае беззнакового типа), а этого недостаточно. Дата публикации (поле PublicationDate) описана как тип YEAR, поскольку интерес представляет именно год публикации. В то же время для времени поступления книги в магазин (поле AppearDate) выбран тип DATE, так как по этому полю будет производиться поиск наиболее новых книг (например, поступивших за последнюю неделю). Цена книги хранится в поле Price с типом DECIMAL(6,2), для данного проекта этого достаточно. Поля Author (информация об авторе) и Publisher (информация об издательстве, выпустившем книгу) описаны как SMALLINT UNSIGNED, они являются ссылками на записи в таблицах Authors и Publishers, то есть внешними ключами.

Внешний ключ - поле или набор полей одной таблицы, являющихся ключом другой таблицы; используется для индексации логических связей между таблицами.

Запись о книге однозначно идентифицируются с помощью уникального поля Id, которое является первичным ключом таблицы.

Основные выборки из таблицы Books будут производиться по категориям (поле Category), так как книги однозначно привязаны к категории, к которой они относятся, с учетом даты появления книги в магазине (поле AppearDate), поэтому следует добавить составной индекс по этим двум полям.

В соответствии с техническим заданием необходимо обеспечить поиск товара в названиях и описаниях товара (поля Name и Synopsis), для ускорения возможностей поиска необходимо определить индексы по этим полям. Индексы - механизм физического хранения информации, позволяющий ускорить поиск значений в полях таблицы.

В Интернет-магазине предусматривается возможность выборки информации по имени автора или названию издательства, следовательно, необходимо добавить еще два индекса (поля Author и Publisher). Об авторе достаточно знать имя и краткую биографическую справку. Список произведений, написанных определенным автором, формируется на основе данных таблицы Books. Параметры таблицы авторов Athors описаны в таблице 4.

Таблица 4. Поля таблицы авторов (Authors)

Поле таблицы

Тип данных

Описание

Id

SMALLINT UNSIGNED

Уникальный идентификатор автора

Name

VARCHAR(255)

Имя автора

Biography

TEXT

Краткая биографическая справка

Первичный ключ, однозначно определяющий запись в таблице, - поле Id. Основные запросы к таблице авторов будут производиться по первичному ключу Id, поэтому другие индексы в данной таблице не потребуются. В информацию об издательстве включим название и краткую характеристику. В то же время ссылку на сайт, например, категорически нельзя включать, поскольку многие издательства имеют свои Интернет-магазины, которые просто так рекламировать не стоит. Параметры таблицы издательств описаны в таблице 5.

Таблица 5. Поля таблицы издательств (Publishers)

Поле таблицы

Тип данных

Описание

Id

SMALLINT UNSIGNED

Уникальный идентификатор издательства

Name

VARCHAR(255)

Название издательства

Description

TEXT

Краткое описание издательства

Так же как и в таблице авторов, в этой таблице необходим только первичный ключ Id, однозначно определяющий запись в таблице.

Описанных выше четырех таблиц достаточно, чтобы создать структурированный каталог и представить полную (или почти полную) информацию о книгах, находящихся в нем.
Для того чтобы более точно проследить логику спроектированной базы данных и связи между таблицами, рисуется модель логической структуры данных. Фактически на данном этапе закончено проектирование структуры Интернет-каталога, на рисунке 3 представлена его окончательная модель.

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


Рисунок 3. Модель логической структуры данных

Кроме хранения информации о каталоге книг в Интернет-магазине требуется информация о пользователе и товарах, которые он заказал. Информация о пользователе должна включать сведения, необходимые для доставки товара, а также данные авторизации и текущей сессии - это связано, прежде всего, с вопросами безопасности и обеспечения доступа удаленного пользователя. Список необходимых параметров приведен в таблице 6.

Таблица 6. Поля таблицы пользователей (Users)

Поле таблицы

Тип данных

Описание

Id

MEDIUMINT UNSIGNED

Уникальный идентификатор покупателя

Name

CHAR (127)

Имя покупателя

Surname

CHAR (127)

Фамилия покупателя

Email

VARCHAR(64)

E-Mail покупателя

Phone

VARCHAR(20)

Телефон для подтверждения заказа

Address

VARCHAR(255)

Адрес доставки

IP

CHAR(14)

Текущий IP покупателя

SessionKey

INT UNSIGNED

Уникальный код для авторизации

LastVisit

DATETIME

Время последнего посещения

OrderID

INT UNSIGNED

Номер текущего заказа

Для полей Name и Surname (имя и фамилия покупателя соответственно) определена максимальная длина поля 127 символов, этого должно быть достаточно для большинства потенциальных покупателей, излишнее увеличение связано с тем, что иногда пользователи вводят и имя, и фамилию в одном поле.

Поле Email определено длиной 64 символа. Возможно, это излишне, так как большинство адресов не превышают 15-30 символов, но представим, что кто-то с очень длинным адресом захочет купить товар в этом магазине. В случае с информацией о покупателях лучше перестраховаться и предусмотреть такую возможность.

Поле Phone (номер телефона для подтверждения заказа) используется для хранения как номера телефона, так и кода города/страны (например, 7-(812)-312-00-00), если пользователь ввел эту информацию.

Характеристики

Тип файла
Документ
Размер
10,18 Mb
Тип материала
Предмет
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6489
Авторов
на СтудИзбе
303
Средний доход
с одного платного файла
Обучение Подробнее