Тематические 'онлайн-магазины'

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    395,5 Кб
  • Опубликовано:
    2013-06-24
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Тематические 'онлайн-магазины'

Оглавление

 

ВВЕДЕНИЕ

. АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ

.1      Анализ существующих аналогов

.1.1 интернет-портал «onliner.by»

.1.2 интернет-магазин «ebay.com»

.1.3 интернет-магазин «eda.by»

. РАЗРАБОТКА ПРОГРАММНОГО СРЕДСТВА И БАЗЫ ДАННЫХ

.1 Спецификация требований

.1.1 Варианты использования ПС и БД

.2 Архитектурное решение проекта

.3 Обоснование выбора информационных технологий

. ИНФОЛОГИЧЕСКАЯ МОДЕЛЬ БАЗЫ ДАННЫХ

.1 Разработка модели базы данных

.2 Схема базы данных на языке SQL

. РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЕ А

ПРИЛОЖЕНИЕ Б

ПРИЛОЖЕНИЕ В

 

ВВЕДЕНИЕ


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

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

Некоторое время назад существовала проблема, заключавшаяся в том, как и где хранить данные: разбивать все по подкаталогам или хранить в одном файле, а может и то и другое. Помимо этого, подход, заключавшийся в том, чтобы сам программист контролировал, где лежит тот или иной файл, увеличивал не только сложность разработки ПО, но и количество ошибок, а также время и стоимость разработки. Сейчас все большее значение придается сетевому взаимодействию или доступу к данным, используя интернет. Т.е. возникает еще ряд вопросов, связанных с безопасностью.

Эти проблемы в большей части исчезли после введения прослойки между представлением данных на диске и данными в программе. Решением стали базы данных и системы управления базами данных. В зависимости от разработчика или конкретных настроек СУБД определяет, как и где ей хранить данные. Помимо этого, все СУБД предоставляют механизм для получения этих данных в удобной для дальнейшего использования форме - «запросы». С их помощью можно указать критерии выбора данных, отсортировать данные в нужном порядке, сгруппировать, как того требует задание, и т.п. Помимо этого, большинство СУБД поддерживает механизм разграничения прав доступа, т.е. достаточно указать, какие данные какому пользователю можно или нельзя получать, а все остальное возьмет на себя СУБД.

Существуют различные модели организации данных. Вот некоторые из них:

-       иерархическая;

-       сетевая;

-       реляционная;

-       объектная и объектно-ориентированная <#"657027.files/image001.jpg">

Рисунок 2.3 - Схема обработки запроса поиска автомобиля в каталоге

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

3. ИНФОЛОГИЧЕСКАЯ МОДЕЛЬ БАЗЫ ДАННЫХ

 

3.1 Разработка модели базы данных


Для данного приложения была разработана база данных, модель которой находится в приложении В.

Ниже приведено описание основных таблиц:

.        таблица «table_car» используется для хранения информации об автомобилях:

-       ID(bigint) -первичный ключ таблицы, идентификатор автомобиля;

-       Model(varchar(100)) - полное название модели;

-       Color(varchar(100)) -цвет кузова;

-       Price (varchar(50)) - стоимость автомобиля;

-       Sale Date(datetime) -датаоформления заказа;

-       Stat (varchar(100)) - состояние(в салоне/оформлен заказ);

-       Buyerid (bigint) -идентификатор покупателя.

-       Release Date(int) - годвыпуска.

2.      таблица «table_mod» используется для хранения дополнительной информации о выбранном автомобиле:

-       ID(bigint) -первичный ключ таблицы, идентификатор модели автомобиля;

-       CarID (bigint) - идентификатор автомобиля;

-       Seatsnumber(int) -количество пассажирских мест;

-       fuel(varchar(10)) - тип используемого топлива;

-       Fuelrate (int) - расход топлива в литрах на 100 км.

.        таблица «table_stat» используется для хранения информации о состоянии автомобиля(находится в салоне/ продано):

-       ID(bigint) -первичный ключ таблицы, идентификатор состояния;

-       Stat(varchar(100)) - состояние автомобиля;

.        таблица «table_distr» используется для хранения информации о поставщике:

-       ID(bigint) -первичный ключ таблицы, идентификатор поставщика;

-       CarID(bigint) - идентификатор автомобиля

-       Contact Information (varchar(100)) - контактнаяинформация.

-       DistrName (varchar(100)) - название поставщика.

.        таблица «table_man» используется для хранения информации о человеке, тк он может являться работником или покупателем:

-       ID(bigint) -первичный ключ таблицы, идентификатор человека;

-       Surname(varchar(50)) - фамилия;

-       Name(varchar(50)) -имя;

.        таблица «table_contact» используется для хранения информации о контактной инофрмации работника/покупателя:!!!!!!!!!!!!!!!!!!!!!!!!(прод)

-       ID(bigint) -первичный ключ таблицы, идентификатор контактной информации;

-       ManID (bigint) - идентификатор;

-       Phone(nvarchar(100)) -номер телефона;

-       Adress(varchar(100)) -адрес;

.        таблица «table_client» используется для хранения информации о клиентах:

-       ID(bigint) -первичный ключ таблицы, идентификатор клиента;

-       ManID (bigint) - Идентификатор человека;

-       CarID(bigint) -идентификатор автомобиля;

.        таблица «table_buyer» используется для хранения информации о покупателях:

-       ID(bigint) -первичный ключ таблицы, идентификатор покупателя;

-       ManID(bigint) - идентификатор человека;

-       CarID(bigint) - идентификатор автомобиля;

-       OfficialID (bigint) - идентификатор сотрудника;

-       Payment (bigint) - идентификатор способа оплаты.

9.      таблица «table_payment» используется для хранения информации о способах оплаты:

-       ID (bigint) - первичный ключ таблицы, идентификатор способа оплаты;

-       Payment(varchar(50)) - способ оплаты;

10.    таблица «table_official» используется для хранения информации о сотрудниках:

-       ID (bigint) - первичный ключ таблицы, идентификатор сотрудника;

-       ManID (bigint) - идентификатор человека;

-       Post (varchar(50))- занимаемая должность;

-       Reward (int) - заработная плата;

.        таблица «table_post» используется для хранения информации о занимаемых должностях:

-       ID (bigint) - первичный ключ таблицы, идентификатор должности;

-       Post(varchar(50) - занимаемая должность;

Каждый автомобиль связан со своеймодификацией через таблицу car_mod. В данной таблице используется составной первичный ключ (состоит из идентификатора автомобиля и идентификатора модификации).

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

Структура клиентов-сотрудников заключена в таблицы table_man, table_buyerи table_official. Длясвязитаблицпотипуtable_man - table_officialиtable_man - table_buyerвтаблицеtable_manиспользуется первичный ключ man_id, который используется для связи в двух других таблицах.

В таблице table_distr имеется информация о поставщике автомобиля, которая связана с таблицей table_carчерезидентификатор автомобиля и идентификатор поставщика. Для каждого автомобиля ставится в соответствие поставщик и его краткая информация.

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

3.2 Схема базы данных на языке SQL


CREATE TABLE [dbo].[Club](       [Id] [bigint] IDENTITY(1,1) NOT NULL, [Name] [varchar](100) NOT NULL,

[CreationDate] [datetime] NOT NULL,     [Owner] [varchar](50) NOT NULL,[PK_Club] PRIMARY KEY CLUSTERED ([Id] ASC)(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]ANSI_PADDING OFFANSI_NULLS ONQUOTED_IDENTIFIER ONSET ANSI_PADDING ONTABLE [dbo].[aspnet_WebEvent_Events](

[EventId] [char](32) NOT NULL,

[EventTimeUtc] [datetime] NOT NULL,

[EventTime] [datetime] NOT NULL,

[EventType] [nvarchar](256) NOT NULL,

[EventSequence] [decimal](19, 0) NOT NULL,

[EventOccurrence] [decimal](19, 0) NOT NULL,

[EventCode] [int] NOT NULL,

[EventDetailCode] [int] NOT NULL,

[Message] [nvarchar](1024) NULL,

[ApplicationPath] [nvarchar](256) NULL,

[ApplicationVirtualPath] [nvarchar](256) NULL,

[MachineName] [nvarchar](256) NOT NULL,

[RequestUrl] [nvarchar](1024) NULL,

[ExceptionType] [nvarchar](256) NULL,

[Details] [ntext] NULL,KEY CLUSTERED

(

[EventId] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]ANSI_PADDING OFFANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Footballer](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[Name] [varchar](100) NOT NULL,

[Surname] [varchar](100) NOT NULL,

[Position] [varchar](50) NOT NULL,

[DateOfBirth] [datetime] NOT NULL,

[Nationality] [varchar](100) NOT NULL,

[Sex] [varchar](10) NOT NULL,[PK_Footballer] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFFANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Trophy](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[Name] [varchar](50) NOT NULL,[PK_Trophy] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] GOANSI_PADDING OFF

/****** Object: Table [dbo].[Stadium] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Stadium](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[Name] [varchar](50) NOT NULL,

[Location] [varchar](50) NOT NULL,

[Capacity] [bigint] NOT NULL,[PK_Stadium] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[Referee] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Referee](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[Name] [varchar](100) NOT NULL,

[Surname] [varchar](100) NOT NULL,

[DateOfBirth] [datetime] NOT NULL,

[Nationality] [varchar](100) NOT NULL,

[Sex] [varchar](10) NOT NULL,

[StartCareerDate] [datetime] NOT NULL,[PK_Referee] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[News] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[News](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[Body] [nvarchar](max) NOT NULL,

[Header] [nvarchar](max) NOT NULL,

[Picture] [varchar](500) NULL,

[Time] [datetime] NULL,[PK_News] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_SchemaVersions] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_SchemaVersions](

[Feature] [nvarchar](128) NOT NULL,

[CompatibleSchemaVersion] [nvarchar](128) NOT NULL,

[IsCurrentVersion] [bit] NOT NULL,KEY CLUSTERED

(

[Feature] ASC,

[CompatibleSchemaVersion] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_Applications] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_Applications](

[ApplicationName] [nvarchar](256) NOT NULL,

[LoweredApplicationName] [nvarchar](256) NOT NULL,

[ApplicationId] [uniqueidentifier] NOT NULL,

[Description] [nvarchar](256) NULL,KEY NONCLUSTERED

(

[ApplicationId] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],NONCLUSTERED

(

[LoweredApplicationName] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY],NONCLUSTERED

(

[ApplicationName] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[Coach] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONANSI_PADDING ONTABLE [dbo].[Coach](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[Name] [varchar](100) NOT NULL,

[Surname] [varchar](100) NOT NULL,

[DateOfBirth] [datetime] NOT NULL,

[Nationality] [varchar](100) NOT NULL,

[Sex] [varchar](10) NOT NULL,

[StartCareerDate] [datetime] NOT NULL,[PK_Coach] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]ANSI_PADDING OFF

/****** Object: Table [dbo].[Footballer_Club] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[Footballer_Club](

[FootballerId] [bigint] NOT NULL,

[ClubId] [bigint] NOT NULL,[PK_Footballer_Club] PRIMARY KEY CLUSTERED

(

[FootballerId] ASC,

[ClubId] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[Coach_Club] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[Coach_Club](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[ClubId] [bigint] NOT NULL,

[CoachId] [bigint] NOT NULL,

[StartCooperation] [datetime] NOT NULL,

[EndCooperation] [datetime] NULL,[PK_Coach_Club] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[Club_Tropy] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[Club_Tropy](

[ClubId] [bigint] NOT NULL,

[TrophyId] [bigint] NOT NULL,

[DateVictory] [datetime] NOT NULL,[PK_Club_Tropy] PRIMARY KEY CLUSTERED

(

[ClubId] ASC,

[TrophyId] ASC,

[DateVictory] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_Paths] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_Paths](

[ApplicationId] [uniqueidentifier] NOT NULL,

[PathId] [uniqueidentifier] NOT NULL,

[Path] [nvarchar](256) NOT NULL,

[LoweredPath] [nvarchar](256) NOT NULL,KEY NONCLUSTERED

(

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_Users] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_Users](

[ApplicationId] [uniqueidentifier] NOT NULL,

[UserId] [uniqueidentifier] NOT NULL,

[UserName] [nvarchar](256) NOT NULL,

[LoweredUserName] [nvarchar](256) NOT NULL,

[MobileAlias] [nvarchar](16) NULL,

[IsAnonymous] [bit] NOT NULL,

[LastActivityDate] [datetime] NOT NULL,KEY NONCLUSTERED

(

[UserId] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_Roles] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_Roles](

[ApplicationId] [uniqueidentifier] NOT NULL,

[RoleId] [uniqueidentifier] NOT NULL,

[RoleName] [nvarchar](256) NOT NULL,

[LoweredRoleName] [nvarchar](256) NOT NULL,

[Description] [nvarchar](256) NULL,KEY NONCLUSTERED

(

[RoleId] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[Match] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[Match](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[DateOfMatch] [datetime] NULL,

[StadiumId] [bigint] NOT NULL,

[RefereeId] [bigint] NOT NULL,

[ClubId_1] [bigint] NOT NULL,

[ClubId_2] [bigint] NOT NULL,

[Goals_1] [bigint] NOT NULL,

[Goals_2] [bigint] NOT NULL,[PK_Match] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[Goal] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[Goal](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[MatchId] [bigint] NOT NULL,

[FootballerId] [bigint] NOT NULL,

[NumberOfGoals] [bigint] NOT NULL,

[GoalTime] [bigint] NOT NULL,[PK_Goal] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[Comment] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[Comment](

[Id] [bigint] IDENTITY(1,1) NOT NULL,

[Time] [datetime] NULL,

[Body] [nvarchar](max) NOT NULL,

[NewsId] [bigint] NOT NULL,

[LoginId] [uniqueidentifier] NOT NULL,[PK_Comment] PRIMARY KEY CLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_UsersInRoles] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_UsersInRoles](

[UserId] [uniqueidentifier] NOT NULL,

[RoleId] [uniqueidentifier] NOT NULL,KEY CLUSTERED

(

[UserId] ASC,

[RoleId] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_Profile] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_Profile](

[UserId] [uniqueidentifier] NOT NULL,

[PropertyNames] [ntext] NOT NULL,

[PropertyValuesString] [ntext] NOT NULL,

[PropertyValuesBinary] [image] NOT NULL,

(

[UserId] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_PersonalizationPerUser] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_PersonalizationPerUser](

[Id] [uniqueidentifier] NOT NULL,

[PathId] [uniqueidentifier] NULL,

[UserId] [uniqueidentifier] NULL,

[PageSettings] [image] NOT NULL,

[LastUpdatedDate] [datetime] NOT NULL,KEY NONCLUSTERED

(

[Id] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_PersonalizationAllUsers] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_PersonalizationAllUsers](

[PathId] [uniqueidentifier] NOT NULL,

[PageSettings] [image] NOT NULL,

[LastUpdatedDate] [datetime] NOT NULL,KEY CLUSTERED

(

[PathId] ASC

)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

/****** Object: Table [dbo].[aspnet_Membership] Script Date: 12/08/2012 21:17:54 ******/ANSI_NULLS ONQUOTED_IDENTIFIER ONTABLE [dbo].[aspnet_Membership](

[ApplicationId] [uniqueidentifier] NOT NULL,

[UserId] [uniqueidentifier] NOT NULL,

[Password] [nvarchar](128) NOT NULL,

[PasswordFormat] [int] NOT NULL,

[PasswordSalt] [nvarchar](128) NOT NULL,

[MobilePIN] [nvarchar](16) NULL,

[Email] [nvarchar](256) NULL,

[LoweredEmail] [nvarchar](256) NULL,

[PasswordQuestion] [nvarchar](256) NULL,

[PasswordAnswer] [nvarchar](128) NULL,

[IsApproved] [bit] NOT NULL,

[IsLockedOut] [bit] NOT NULL,

[CreateDate] [datetime] NOT NULL,

[LastLoginDate] [datetime] NOT NULL,

[LastPasswordChangedDate] [datetime] NOT NULL,

[LastLockoutDate] [datetime] NOT NULL,

[FailedPasswordAttemptCount] [int] NOT NULL,

[FailedPasswordAttemptWindowStart] [datetime] NOT NULL,

[FailedPasswordAnswerAttemptCount] [int] NOT NULL,

[FailedPasswordAnswerAttemptWindowStart] [datetime] NOT NULL,

[Comment] [ntext] NULL,KEY NONCLUSTERED

(

4. РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ


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

Стартовая страница портала выглядит следующим образом:

Рисунок 4.1 -Стартовая страница автосалона

На стартовой странице в верхней части находятся основные пункты меню для навигации по сайту автосалона. В правом верхнем углу находится текущее состояние пользователя (в данном случае пользователь не зарегистрирован и доступен переход по ссылке LogIn (входа)).

Перейдём на страницу входа в учётную запись пользователя:

Рисунок 4.2-Страница входа в учётную запись

На странице входа отображается форма для ввода информации об уже зарегистрированном пользователе. Если пользователь ещё не зарегистрирован, то необходимо перейти, щёлкнув по ссылке Register. В этом случае появится окно для регистрации пользователя (необходимо будет ввести логин, пароль, адрес электронной почты).

Рисунок 4.3-Окно регистрации нового пользователя

Если пользователь не заполнит какое-либо из полей, либо введенные данные в полях «EnterPassword»и «ConfirmPassword» будет выведена информация о неправильном заполнении формы регистрации.

Рисунок 4.4-Предупреждения о неправильности заполнения формы регистрации

После входа в свою учетную пользователь попадает на главную страницу и теперь может оформить заказ или осуществить поиск по сайту. Перейдя в пункт меню «Autos»пользователь сможет увидеть список всех доступных автомобилей в салоне.

Рисунок 4.5-раздел «Autos»

Выбрав пункт меню «ClientBase» на экране появится таблица, содержащая информацию обо всех клиентах автосалона.

Перейдем к пункту меню «CkeckOut». Здесь пользователь может оформить свой заказ, ему будет предоставлена таблица доступных автомобилей, кликнув по нужному пункту, он перейдет к оформлению заказа

Рисунок 4.6-поиск автомобиля по критериям

Как видно из рисунка, пользователь может заполнить лишь необходимые ему поля. При нажатии на кнопку Checkсистема выдаст все возможные результаты поиска. В данном случае соответствует 1 найденная запись.

Внизу расположены две кнопки «Yes» и «No». В зависимости от выбора пользователя будет оформлен заказ или возврат на предыдущую страницу.

ЗАКЛЮЧЕНИЕ


В результате выполнения курсовой работы была разработана работоспособная модель базы данных, которая позволяет обеспечить функционирование автосалона и хранить информацию о доступных автомобилях, клиентах, сотрудниках, поставщиках. Например, автомобилю соответствует следующая информация: модель, цвет, дата выпуска, количество мест для сидения, тип топлива, расход топлива и стоимость.

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

ПРИЛОЖЕНИЕ А


(рекомендуемое)

Программный модуль административных операций

usingSystem;.Collections.Generic;.Linq;.Web;.Web.Mvc;.Web.Security;.Data.Entities.EntityFramework;.Data.Repositories.Interfaces;.Web.Constants;.Web.Helpers;.Web.Helpers.Enums;.Web.Models.Account;.Web.Models.Admin;.Web.Controllers

{

[Authorize(Roles = "Admin")]class AdminController : Controller

{_adminRepository;(IAdminRepositoryadminRepository)

{

_adminRepository = adminRepository;

}

[HttpGet]Index()

{View();

}

#region User actions

[HttpGet]Users()

{model = new EditModel {Users = _adminRepository.Users(), RegisterModel = new RegisterModel()};View(model);

}

[HttpPost](string login)

{

{= Membership.DeleteUser(login);(!isSuccess)

{new JsonResult

{Data = new {status = UserOperationStatus.Failure, message = "Can't delete user!"}};

}

}(Exception ex)

{new JsonResult {Data = new {status = UserOperationStatus.Failure, message = ex.Message}};

}new JsonResult {Data = new {status = UserOperationStatus.Success, message = ""}};

}

[HttpPost](string login)

{user = _adminRepository.GetUser(login);= Roles.GetRolesForUser(login)[0];new JsonResult {Data = new {login = user.UserName, email = user.Email, role = userRole}};

}

[HttpGet]()

{("_AdminRegisterTemplate");

}

[HttpPost]

[ValidateInput(false)](RegisterModel user, string role)

{

_adminRepository.CreateUser(user.Login, user.Password, user.Email, role);("Users", "Admin");

}

[HttpPost](string login)

{= (login != HttpUtility.HtmlEncode(login));(isLoginContainsHtml)

{new JsonResult {Data = new {status = UserOperationStatus.Failure, message = "Login must be without html tags!"}};

}user = _adminRepository.GetUser(login);user == null

? newJsonResult { Data = new { status = UserOperationStatus.Success, message = "" } }

: newJsonResult { Data = new { status = UserOperationStatus.Failure, message = "Current login already exists!" } };

}

[HttpPost](string login, string oldRole, string newRole)

{

{.RemoveUserFromRole(login, oldRole);.AddUserToRole(login, newRole);

}(Exception ex)

{new JsonResult {Data = new {status = UserOperationStatus.Failure, message = ex.Message}};

}new JsonResult {Data = new {status = UserOperationStatus.Success, message = ""}};

}

#endregion

#region News actions

[HttpGet]News()

{= _adminRepository.News();models = new List<NewsCommentsModel>(allNews.Count());(var news in allNews)

{= _adminRepository.GetCommentsCount(news.Id);.Add(new NewsCommentsModel {News = news, CommentsCount = commentsCount});

}View(models);

}

#endregion

ПРИЛОЖЕНИЕ Б


Диаграмма классов проекта

ПРИЛОЖЕНИЕВ


Схема базы данных

Похожие работы на - Тематические 'онлайн-магазины'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!