Товары поступают от поставщиков; информация
Товары поступают от поставщиков; информация о каждом из них должна содержать уникальный идентификатор поставщика, имя компании, ее адрес, и, возможно, телефонный номер. Таким образом, можно составить следующую таблицу:
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. Ассоциация с атрибутами.
Далее, мы можем проверить состояние склада с помощью таблицы, содержащей количество всех имеющихся в наличии продуктов:
Содержание Назад Вперед