Примеры дипломов / ВКР_Ботов.pdf
4.ОПИСАНИЕ СТРУКТУР ДАННЫХ
4.1.Инфологическая модель данных
Таблицы, достаточные для сериализации сущностей уровня бизнес-
логики в базу данных перечислены ниже.
EntityAttribute(attributeEntityID, type, code, isSystem, inputType, inputValidator,
defaultValue, isUniqueValue, isRequiredValue, isSingleValue, isEnumValue)
EntityAttributeSet(attributeSetEntityID)
EntityAttributeValue(entityAttributeValueID, attributeEntityID, urlName, decimalVal, integerVal, stringVal, textVal, dateVal, boolVal)
EntityAttributeValuesXref(entityID, entityAttributeValueID)
EntityGroup(groupEntityID)
EntityGroupAttributeXref(groupEntityID, attributeEntityID, sortOrder,
isRequired)
EntityItem(entityID, rootEntityID, parentEntityID, typeID, creatorID, hierarchyID varchar, title, sortOrder, createDate, deleted, active)
EntitySubType(typeID, entitySubTypeID)
EntityType(typeID, name)
EntityXrefEntity(entityID, refEntityID)
Product(productEntityID, productTypeID, attributeSetEntityID, sku, weight, price, qty, urlName)
ProductType(productTypeID, name)
Описанные выше сущности образуют связи, описанные в таблице 4.1. 32
Таблица 4.1 «Связи между сущностями»
Сущность |
Тип связи |
Сущность |
|
|
|
EntityItem |
«один ко многим» |
EntityItem |
|
|
|
EntityItem |
«один к одному» |
Product |
|
|
|
EntityItem |
«один к одному» |
EntityAttributeSet |
|
|
|
EntityType |
«один ко многим» |
EntityItem |
|
|
|
EntityItem |
«один ко многим» |
EntityXrefEntity |
|
|
|
EntityItem |
«один ко многим» |
EntityAttributeValuesXref |
|
|
|
EntityItem |
«один к одному» |
EntityAttribute |
|
|
|
EntityItem |
«один к одному» |
EntityGroup |
|
|
|
ProductType |
«один ко многим» |
Product |
|
|
|
EntityAttributeSet |
«один ко многим» |
Product |
|
|
|
EntityType |
«один ко многим» |
EntitySubType |
|
|
|
EntityAttributeValue |
«один ко многим» |
EntityAttributeValuesXref |
|
|
|
EntityAttribute |
«один ко многим» |
EntityAttributeValue |
|
|
|
EntityAttribute |
«один ко многим» |
EntityGroupAttributeXref |
|
|
|
EntityGroup |
«один ко многим» |
EntityGroupAttributeXref |
|
|
|
На рис. 4.1 представлена инфологическая модель данных,
разработанная при помощи средства SQL Server Management Studio 2008.
33
Рис. 4.1 «Инфологическая модель данных»
4.2.Даталогическая модель данных
На основе инфологической модели была разработана даталогическая модель (см. рис. 4.2).
34
Рис.4.2. «Даталогическая модель данных»
35
Таблица 4.2 является базовой – любая сущность интернет-магазина
имеет запись в данной таблице.
|
|
Таблица 4.2 «EntityItem» |
|
|
|
Название поля |
Тип данных |
Null дозволен |
|
|
|
entityID |
bigint |
Нет |
|
|
|
rootEntityID |
bigint |
Нет |
|
|
|
parentEntityID |
bigint |
Нет |
|
|
|
typeID |
int |
Нет |
|
|
|
creatorID |
uniqueidentifier |
Нет |
|
|
|
hierarchiID |
varchar(512) |
Нет |
|
|
|
Title |
nvarchar(512) |
Нет |
|
|
|
sortOrder |
int |
Нет |
|
|
|
createDate |
datetime |
Нет |
|
|
|
Deleted |
bit |
Нет |
|
|
|
Active |
bit |
Нет |
|
|
|
Таблица 4.3 необходима для хранения информации о продукции |
||
интернет-магазина. |
|
Таблица 4.3 «Product» |
|
|
|
Название поля |
Тип данных |
Null дозволен |
|
|
|
productEntityID |
bigint |
Нет |
|
|
|
productTypeID |
int |
Нет |
|
|
|
attributeSetEntityID |
bigint |
Нет |
|
|
|
Sku |
nvarchar(128) |
Да |
|
|
|
Weight |
float |
Да |
|
|
|
Price |
money |
Нет |
|
|
|
Qty |
int |
Нет |
|
|
|
urlName |
varchar(128) |
Да |
|
|
|
|
36 |
|
Таблица 4.4 необходима для группирования атрибутов сущностей.
|
|
Таблица 4.4 «EntityAttributeSet» |
|
|
|
|
|
Название поля |
Тип данных |
|
Null дозволен |
|
|
|
|
attributeSetEntityID |
bigint |
|
Нет |
|
|
|
|
Таблица 4.5 позволяет разделять сущности на типы, такие как: товар,
категория, заказ, детали заказа и т.д.
|
|
|
Таблица 4.5 «EntityType» |
|
|
|
|
Название поля |
Тип данных |
|
Null дозволен |
|
|
|
|
typeID |
int |
|
Нет |
|
|
|
|
Name |
varchar(256) |
|
Да |
|
|
|
|
|
|
Таблица 4.6 «EntitySubType» |
|
|
|
|
|
Название поля |
Тип данных |
|
Null дозволен |
|
|
|
|
typeID |
int |
|
Нет |
|
|
|
|
entitySubTypeID |
int |
|
Нет |
|
|
|
|
Таблица 4.7 необходима для реализации механизма кроссреференса
между сущностями.
|
|
Таблица 4.7 «EntityXrefEntity» |
|
|
|
|
|
Название поля |
Тип данных |
|
Null дозволен |
|
|
|
|
entityID |
bigint |
|
Нет |
|
|
|
|
refEntityID |
bigint |
|
Нет |
|
|
|
|
Таблица 4.8 необходима для реализации механизма кроссреференса
между значениями атрибутов.
37
Таблица 4.8 «EntityAttributeValuesXref»
Название поля |
Тип данных |
|
Null дозволен |
|
|
|
|
entityID |
bigint |
|
Нет |
|
|
|
|
entityAttributeValueID |
int |
|
Нет |
|
|
|
|
Таблица 4.9 содержит значения атрибутов сущностей. |
|||
|
|
Таблица 4.9 «EntityAttributeValue» |
|
|
|
|
|
Название поля |
Тип данных |
|
Null дозволен |
|
|
|
|
entityAttributeValueID |
int |
|
Нет |
|
|
|
|
attributeEntityID |
bigint |
|
Нет |
|
|
|
|
urlName |
nvarchar(128) |
|
Да |
|
|
|
|
decimalVal |
decimal(28, 10) |
|
Да |
|
|
|
|
integerVal |
int |
|
Да |
|
|
|
|
stringVal |
nvarchar(1024) |
|
Да |
|
|
|
|
textVal |
nvarchar(4000) |
|
Да |
|
|
|
|
dateVal |
datetime |
|
Да |
|
|
|
|
boolVal |
bit |
|
Да |
|
|
|
|
|
Таблица 4.10 «EntityGroupAttributeXref» |
||
|
|
|
|
groupEntityID |
bigint |
|
Нет |
|
|
|
|
attributeEntityID |
bigint |
|
Нет |
|
|
|
|
sortOrder |
int |
|
Нет |
|
|
|
|
isRequired |
char(10) |
|
Да |
|
|
|
|
Таблица 4.11 «EntityAttribute» содержит описание типов атрибутов,
расширяющих сущности интернет-магазинов.
38
|
|
Таблица 4.11 «EntityAttribute» |
|
|
|
|
|
Название поля |
Тип данных |
|
Null дозволен |
|
|
|
|
attributeEntityID |
bigint |
|
Нет |
|
|
|
|
Type |
varchar(64) |
|
Нет |
|
|
|
|
Code |
nvarchar(64) |
|
Нет |
|
|
|
|
isSystem |
bit |
|
Нет |
|
|
|
|
inputType |
varchar(128) |
|
Нет |
|
|
|
|
inputValidator |
nvarchar(128) |
|
Да |
|
|
|
|
defaultValue |
nvarchar(1024) |
|
Да |
|
|
|
|
isUniqueValue |
bit |
|
Нет |
|
|
|
|
isRequiredValue |
bit |
|
Нет |
|
|
|
|
isSingleValue |
bit |
|
Нет |
|
|
|
|
isEnumValue |
bit |
|
Нет |
|
|
|
|
|
|
Таблица 4.12 «EntityGroup» |
|
|
|
|
|
Название поля |
Тип данных |
|
Null дозволен |
|
|
|
|
groupEntityID |
bigint |
|
Нет |
|
|
|
|
4.3.Слой бизнес-логики
Для построения переднего офиса прототипа интернет-магазина были выделены следующие бизнес-сущности:
1.Order – сущность необходимая для формирования заказа покупателя;
2.OrderDetail – уточняющая заказ сущность;
3.User – пользователь интернет-магазина;
39
4.Product – продаваемая сущность;
5.Address – сущность, необходимая для хранения адресов (платежного и доставки).
Названные выше сущности слоя бизнес-логики представлены на рис. 4.3.
Рис 4.3 «Слой бизнес логики»
Все сущности в конечном итоге сериализуется в базу данных. Каждой сущности ставится в соответствие запись таблицы EntityItem. Для разграничения сущностей по типам используется связь таблицы
40
4.3.1. Проектирование интерфейсов
Хорошей практикой в процессе построения веб-приложений является первенство разработки дизайна над написанием программного кода. Именно об этом говориться в главе 9 книги Getting Real: «Слишком много приложений создаются с подходом «сначала программируем». Это неудачная идея. Программирование – самое сложное в создании приложения, а это значит, что и самая дорогая его часть. И создав код, вам будет сложно его изменить. Вместо этого начинайте с дизайна интерфейса» [23].
Потому как компания VivaPortals придерживается методологии изложенной в книге «Getting Real», было принято решения осуществить прототипирование полновесного интерфейса интернет-магазина, а также оптимизированного под браузер смартфона Apple iPhone.
4.3.2. Прототипирование полновесного интерфейса интернет-магазина
В процессе проектирования дизайна был принят во внимание опыт других компаний, специализирующихся в построении интернет-магазинов.
Так на полновесную версию интерфейса наибольшее влияние оказал продукт компании Magento [24].
Проектирование осуществлялось исходя из разрешения 1024 на 768
пикселей для полновесной версии браузера. По данным портала www.w3schools.com/ разрешение 1024 на 768 пикселей можно считать стандартным, так как подавляющая часть более (96%) пользователей используют именного его (20%) или выше [25].
В ходе прототипирования было необходимо заложить возможность достижения целей вариантов использования интернет-магазина, описанных ранее в анализе предметной области.
Для построения прототипов интерфейсов использовался инструмент
SketchFlow средства Microsoft Expression Blend 3. «SketchFlow – это 41
