базы данных магазина спорттоваров
Таблица 3.1. Таблицы базы данных магазина спорттоваров
Таблица | Столбец | Тип данных | Ограничение |
CUSTOMER | CustomeriD (идентификационный номер клиента) | INTEGER | NOT NULL (не может быть неопределенным значением) |
FirstName (имя) | CHARACTER (15) | ||
LastName (фамилия) | CHARACTER (20) | NOT NULL | |
Street (улица) | CHARACTER (25) | ||
City (ГОРОД) | CHARACTER (20) | ||
State (штат) | CHARACTER (2) | ||
Zipcode (ПОЧТОВЫЙ КОД) | INTEGER | ||
Phone (телефон) | CHARACTER (13) | ||
PRODUCT | Product id (идентификационный номер товара) | INTEGER | NOT NULL |
Name (название) | CHARACTER (25) | ||
Description (описание) | CHARACTER (30) | ||
Сategory (категория) | CHARACTER (15) | ||
Vendor id (идентификационный номер поставщика) | INTEGER | ||
VendorName (наименование поставщика) | CHARACTER (30) | ||
INVOICE | InvoiceNumber (номер счета-фактуры) | INTEGER | NOT NULL |
CustomeriD (идентификационный номер покупателя) | INTEGER | ||
InvoiceDate (дата выписки счета-фактуры) | DATE | ||
Totalsale (всего продано на сумму) | NUMERIC (9 ,2) | ||
TotalRemitted (всего оплачено) | NUMERIC (9 ,2) | ||
Formof Payment (форма платежа) | CHARACTER (10) | ||
INVOICE_LINE | LineNumber (номер строки) | INTEGER | NOT NULL |
InvoiceNumber (номер счета-фактуры) | INTEGER | ||
Product id (идентификационный номер товара) | INTEGER | ||
Quantity (количество) | INTEGER | ||
SalePrice (продано по цене) | NUMERIC (9 ,2) |
Обратите внимание, что в некоторых столбцах табл. 3.1 имеется ограничение NOT NULL (не может быть неопределенным значением). Эти столбцы являются или первичными ключами соответствующих таблиц, или вы решили, что есть другие причины, по которым их значения обязательно должны быть определенными. Первичный ключ таблицы должен однозначно идентифицировать каждую ее строку. Значение этого ключа в каждой строке должно быть определенным. (Подробно о ключах говорится в главе 5.)
Таблицы связываются друг с другом посредством общих столбцов. Ниже описаны связи между таблицами. (Отношения таблиц представлены на Рисунок 3.3.)
- Таблицу CUSTOMER связывает с другой таблицей, INVOICE, отношение "один ко многим". Один клиент может сделать множество покупок, в результате чего получится множество счетов-фактур. Однако каждый счет-фактура имеет отношение к одному и только одному клиенту.
- Таблицу INVOICE связывает с таблицей INVOICE_LINE также отношение "один ко многим". Ведь в счете-фактуре может быть множество строк, но каждая строка находится в одном и только одном счете-фактуре.
- Таблицу PRODUCT с таблицей INVOICE_LINE связывает отношение "один ко многим". Каждый товар может быть во множестве строк в одном или многих счетах-фактурах. Однако каждая строка относится к одному и только одному товару.