Взаимнооднозначное соответствие принудительно устанавливается метаданными, поскольку внешний ключ зависимой таблицы является также первичным ключом и соответственно должен быть уникальным. Данное решение предлагает эффективный способ поиска по всем подтипам до тех пор, пока поиск ссылается только на атрибуты базового типа. Как только найдены записи, соответствующие условиям, поиска, можно получить характерные для подтипов атрибуты путем выполнения запроса по таблицам соответствующих подтипов.
Не обязательно знать из строки в базовой таблице, какой подтип представляется строкой. До тех пор, пока число подтипов невелико, можно написать объединение по всем одновременно, создавая разреженный набор результатов, как в таблице структуры Наслодоваииа одиночной таблицы. Атрибуты равны NULL там, где атрибут не применяется в подтипе для заданной строки.
Файл npHt*9p9i_EAV/soin/select-class.sqi
SELECT i.*, Ь.*, f.*
FROM Issues AS i *
LEFT OUTER JOIN Bugs AS b USING (issue_id)
LEFT OUTER JOIN FeatureRequests AS f USING (issue_id);
Этот скрипт является также хорошим кандидатом для определения представления (VIEW).
Данная структура оптимальна, когда приходится часто выполнять запрос по всем подтипам, ссылаясь на столбцы, которые являются общими для подтипов.
Опубликовал vovan666
June 28 2013 17:39:24 ·
0 Комментариев ·
3710 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.