Программирование >>  Руководство по созданию web приложений 

1 ... 46 47 48 [ 49 ] 50 51 52 ... 141


CONSTRAINT - DEFAULT

[[RegisterDate] NULL

CONSTRAINT - DEFAULT latcO)

(15) NULL , CONSTRAINT [PK clients] PfilHARV KEY

[ClientID]

) ON [PRIMARY]

) ON immm]

Например, поле spam инициализируется строкой по, а в поле RegisterDate автоматически заносится текущая дата, полученная от встроенной функции

Состояние пользователя, хранящееся в поле Status, отмечается символом Когда посетитель сделает покупку. Вы можете записать сюда

А .

Мы сделали поля . - и Email

CREATE UNIQUE INDEX f . ON ON

CREATE UNIQUE INDEX [idxEMail] ON ON [PRIMARY]

В результате мы исключили дублирование записей

пателей с , идентификаторами и адресами электронной почты. Если

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

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

Таблица books

В таблицу books сотрудники Вашего Интернет-магазина будут сведе-

ния о , книгах, используя для этого административное пргшожение.

Покупатели также будут обращаться к этой по с помощью другого при-

ложения, созданного : для них. В таблице books покупатели выбира-

ют нужные книги и кладут их в свою виртуальную корзину .

Поля таблицы books описаны в таблице 4-8. Таблица 4-8. Поля . boolis

Поле Тип Описание

joohalD Идентификатор books (ключевое поле)

Autfajr 1 Автор книги

Title )) книги

Publisher i Название книгу

Price Money Стоимость книги в условных

Datetime Дата и время добавления информации о книге в таблицу books

Varchar(2048) Аннотация на книгу

книги указана в условных единицах, но это не , что курс

валюты может вдруг измениться. Так как Вы создаете : в



Базы данных в Практическое руководство

ноте, то покупатели могут для оплаты различные валюты, и тор-

гующему приложению придется выполнять стоимости. Тут-то и при-

годятся паши условные единицы.

Обратите внимание наполе Annotation, -для хранения анно-

на книгу. Его максимальная длина составляет 2 048 байт, что стало возможным только с появлением SQL Server версии 7.0. Максимально поле типа varcliar может содержать 8 ООО символов, что позволяет хранить в поле Annotation объемистые аннотации.

реальный проект . Вы можете добавить в табли-

цу books и другие поля, например номер ISBN, сведения о и т. п.

Сценарий SQL, предназначенный для создания таблицы books, находится в файле (листинг 4-3).

Листинг 4-3 хранится в файле chtiBook \dt)o.books TAB на прилага-

емом к книге компакт-диске.

Ограничение CONSTRAINT на поле Mudatv автоматизирует процесс записи даты добавления книги в таблицу books:

CREATE TABLE (

[bOOksID] [int] - ll, 1) NOT NULL ,

[Author] [varchar] (50) NOT NULL , [Title] [varchar] (200) NOT NULL , [Publisher] [varchar] (50) NOT NULL , [Price] [mone; [AddDate] [da

CONSTRAINT DEFAULT

[Annotation] [-ЧГС11ЧГ] Ul-i N T NULL ,

CONSTRAINT PPIIIARY KEY

[booksID] ) ON [PRIMARY] ) ON [PRIMARY]

Ни одно ИЗ полей данной не может содержать пустые значения NULL,

поэтому при добавлении книги в базу данных предоставить полную

информацию о ней.

Таблица orders

Когда покупатели отбирают понравившиеся им книги для покупки, записи до-

в таблицу orders. Ноля этой таблицы описаны ниоче. Таблица 4-9. Поля таблицы orders

Поле Tinr

Int записи таблицы orders (ключевое поле)

booksID Int Идентификатор книги. 1для покупки ClientID Int выбравшего данную книгу

AddDate Datetime Дата и время отбора книги

money отобранной книги в условных i- iiiinma,4

Поля booksID и ClientID собой внешние ключи ктаблицам

books и clients соответственно. Используя эти поля, мы можем определить, какую книгу отобрал тот или иной покупатель.



Глава 4. Связь приложений с данных через ADO

Поле laDate, хранящее дату и время книги, применяют для

очистки корзин от записей. Например, Вы можете принуди-

тельно удалять записи об отобранных книгах, сделанные более года назад. Сценарий SQL, создающий таблицу orders, представлен в 4-4.

Листинг 4-4 Вы найдете в файле на при-

лагаемом к книге компакт-диске.

Обратите на ограничение CONSTRAINT поля AddDate:

CREATE TABLE . (

[ordersID] [int] IDENTITY (1, 1) NOT NULL ,

[int] NOT NULL , [ClientID] [int] NOT NULL , [AddDate] [eateilni] NOT NULL

CONSTRAINT [DF orders AddDate] DEFAULT . IBaoKFajee] [money] NOT NULL ,

CONSTRAINT [PK orders] PRIMARY KEY

[ordersID] ) ON [PRIMARY]

) ON [Римдв*]

С его помощью в данное автоматически время и дата до-

бавления книги в корзину покупателя.

Подготовка хранимых процедур

Для приложений нашего мы подготовили ряд хранимых

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

Для примера мы привели в листинге 4-5 in,уааиьаг текст хранимой процедуры ClientLogin. предназначенной для подключения к Интернет- магазину заре-гистрированныхпокупателей.

Листинг 4-5 Вы найдете в файле ch4\BookShopScript8\ clho ClertLog n.PRC на прилагаемом к книге компакт-диске.

В качестве входных параметров мы передаем этой процедуре идентификатор пользователя @User и пользователя ©Pass:

PROCEDURE ClientLogin varGhar(50),

output AS

SELECT FROM clients WHERE AND

UPDATE clients SET . WHERE

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

функции GETDATE.

Сейчас мы не будем подробно описывать работу этой и других процедур - о ней мы расскажем в разделах, посвященных описанию страниц ASP нашего магазина. Отметим только, что процедуры Вы добавить в базу данных при приложения SQL Server Query Analyzer.



1 ... 46 47 48 [ 49 ] 50 51 52 ... 141

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика