Документация на MySQL



         

Таблицы - часть 2


# The Purchase Order table. # # customer_id links us to the Customer_Table # Where we can get more information about the customer. # # To allow for N items on a Purchase order we have to # have another table called Purchase_Order_Item that # we link to be way of purchase_order. CREATE TABLE Purchase_Order ( purchase_order MEDIUMINT(8) NOT NULL AUTO_INCREMENT, customer_id SMALLINT NOT NULL, order_date DATE NOT NULL, due_date DATE NOT NULL, close_date DATE NOT NULL, status_code TINYINT(2) UNSIGNED NOT NULL, last_action_date TIMESTAMP, PRIMARY KEY (purchase_order), KEY (customer_id,order_date,status_code) );

Мы считаем, что заказчик собирается заказывать у нас товар более чем однажды. По этой причине вместо записей об адресе и имени заказчика, мы назначаем каждому заказчику уникальный номер идентификации, который связывает нас со входом в таблице, которая содержит эту информацию. Мы назовем эту таблицу Customer. О ней поговорим немного позже. Также обратите внимание, что мы не имеем никакого упоминания о widgets в этой таблице. Это потому, что порядок приобретения может быть разным. Мы могли бы только определить некоторое фиксированное число способов покупки, но это не будет очень гибко. Взамен этого мы определяем поле, названное purchase_order, которое будет содержать уникальный номер для каждого способа приобретения. Затем мы определяем другую таблицу, которая будет содержать один вход для каждого значения порядка покупки.

Еще одно интересное поле last_action_date. Это поле имеет тип TIMESTAMP. Поля этого типа автоматически модифицируются всякий раз, когда на них выполняется команда INSERT или UPDATE. Это показывает, когда запись была в последний раз изменена.

Таблица для Purchase_Order_Item:

# The Purchase_Order_Item table. # # Since there can be more than one item on a purchase order # we need a table that contains a single item. We link back to # The main Purchase_Order table by use of the purchase_order field. # # We can also link back to the Widget_Table table by use of the # widget_id field. # # Last of all we link to the Status table by way of the status_code field. CREATE TABLE Purchase_Order_Item ( purchase_order SMALLINT NOT NULL, order_sequence SMALLINT NOT NULL, widget_id MEDIUMINT(8) NOT NULL, quantity SMALLINT(4) UNSIGNED NOT NULL, status_code TINYINT(2) UNSIGNED NOT NULL, order_date DATE NOT NULL, item_due_date DATE NOT NULL, deliver_date DATE NOT NULL, last_action_date TIMESTAMP, PRIMARY KEY (purchase_order,order_sequence), KEY (widget_id), KEY (status_code,order_date) );




Содержание  Назад  Вперед