Объектно-ориентированное проектирование с примерами


Модели баз данных - часть 4


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

Suppliers


 

SupplierID Company Address Telephone
00056 Interstate Supply 2222 Fannin, Amarillo, TX 806-555-0036
03107 Interstate Supply 3320 Scott, Santa Clara, CA 408-555-3600
78829 Universal Products 2171 Parfet Ct, Lakewood, CD 303-555-2405

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

Различные поставщики предлагают различные продукты по различным ценам, поэтому мы можем организовать также таблицу стоимости продуктов. Она содержит текущую цену для каждой комбинации товар/поставщик:

Prices


 

productID SupplierID Price
0081735 03107 $0.10
0081735 78829 $0.09
0156999 78829 $367.75
7775098 03107 $10.69
6889655 00056 $0.09
9074001 03107 $1.75

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

На рис. 10-5 представлена структура классов, соответствующая этим таблицам. Здесь, для обозначения записей, которые имеют смысл только в совокупности с записями из других таблиц, мы используем ассоциацию с атрибутом. Первичные ключи таблиц заключены в квадратные скобки.
 

Рис. 10-5. Ассоциация с атрибутами.

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




Начало  Назад  Вперед



Книжный магазин