Файл примера :_Polymorphic/anti/addresses.sql
CREATE TABLE Addresses (
address_id SERIAL PRIMARY KEY,
parent VARCHAR(20), — "Users" или "Orders"
parent_id BIGINT UNSIGNED NOT NULL,
address TEXT
) ;
В данном случае таблица Addresses содержит полиморфный столбец, который именуется или как Users, или как Orders и служит в качестве родительской таблицы для заданного адреса. Обратите внимание, что необходимо выбрать одну или другую таблицу. Нельзя связать заданный адрес как с пользователем, так и с заказом, даже когда заказ размещен этим пользова телем с тем, чтобы отправить товары самому себе.
К тому же если у пользователя есть адрес отгрузки, а также адрес выставления счета, необходимо придумать какой-нибудь способ, чтобы различать их в таблице Addresses. Аналогично любым другим родительским объектам требуется отмечать особое использование адресов в таблице Addresses. Эти заметки могут распространяться как сорняки.
Файл примера :Polymorphic/anti/addresses.sql
CREATE TABLE Addresses (
address_id SERIAL PRIMARY KEY,
parent VARCHAR(20), — "Users" или "Orders"
parent_id BIGINT UNSIGNED NOT NULL,
users_usage VARCHAR(20), — "billing" или "shipping"
orders_usage VARCHAR(20), — "billing" или "shipping"
address TEXT
Опубликовал vovan666
July 03 2013 10:05:23 ·
0 Комментариев ·
3721 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.