Разница между представлением БД и таблицей поиска - PullRequest
1 голос
/ 10 марта 2010

Когда я создаю представление, я могу основывать его на нескольких столбцах из разных таблиц. Когда я хочу создать таблицу поиска, мне нужна информация из одной таблицы, например, внешний ключ таблицы заказов, чтобы получить сведения о клиенте из другой таблицы. Я могу создать представление с параметрами, чтобы убедиться, что оно получит все данные, которые мне нужны. Я мог бы также - из того, что я читал - составить справочную таблицу. Какая разница в этом случае и когда я должен выбрать таблицу поиска? Надеюсь, это не плохой вопрос, я еще не очень разбираюсь в БД;).

Ответы [ 5 ]

2 голосов
/ 10 марта 2010

Я думаю, что вы используете "Lookup Table" немного не так. На обычном языке таблица поиска - это таблица кодов или справочных данных. Он может состоять из КОДА и ОПИСАНИЯ или расширения кода. Целью таких таблиц является предоставление списка разрешенных значений для ограниченных столбцов, таких как CUSTOMER_TYPE или PRIORITY_CODE. Эту категорию таблиц часто называют «постоянными данными», потому что они изменяются очень редко, если вообще изменяются. Ценность определения этих данных в таблицах поиска заключается в том, что они могут использоваться во внешних ключах и заполнять раскрывающиеся списки и списки значений.

То, что вы описываете, это немного другой сценарий:

Мне нужна информация из одной таблицы, для пример внешнего ключа заказа стол, чтобы получить данные клиента из другой стол

Обе эти таблицы являются таблицами данных приложения. Записи о клиентах и ​​заказах являются динамическими. Теперь очевидно, что можно извлечь дополнительные данные из таблицы Customer для отображения вместе с данными Заказа, и в этом смысле Customer является «справочной таблицей». Более уместно, что это родительская таблица Order, поскольку она имеет первичный ключ, на который ссылается внешний ключ Order.

Во что бы то ни стало построить представление, чтобы отразить логику соединения между Заказом и Заказчиком. Такие представления могут быть весьма полезны при создании приложения, которое использует одни и те же объединенные таблицы в нескольких местах.

2 голосов
/ 10 марта 2010

Создание представления дает вам «живое» представление данных в том виде, в котором они были на момент запроса. Это происходит за счет более высокой нагрузки на сервер, поскольку он должен определять значения для каждого запроса. Это может быть дорого, в зависимости от размеров таблицы, реализации базы данных и сложности определения представления.

Справочная таблица, с другой стороны, обычно заполняется «вручную», т.е. е. не каждый запрос к нему вызовет дорогостоящую операцию для извлечения значений из нескольких таблиц. Вместо этого ваша программа должна позаботиться об обновлении таблицы поиска в случае изменения базовых данных.

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

0 голосов
/ 10 марта 2010

Просто научитесь писать sql запросы, чтобы получить именно то, что вам нужно. Не нужно создавать вид! Представления не подходят для использования во многих случаях, особенно если вы начинаете основывать их на других представлениях, когда они снижают производительность. Не используйте представления просто как сокращение для написания запросов.

0 голосов
/ 10 марта 2010

Вот пример таблицы поиска. У нас есть система отслеживания присяжных заседателей, одна из таблиц - JurorStatus. Эта таблица содержит все действительные коды состояния для присяжных заседателей:

Код: Значение
WS: будет служить
ПП: отложено
EM: Извините Военные
ЕСЛИ: Несоответствующий Фелон

Это таблица поиска действительных кодов.

Представление похоже на запрос.

0 голосов
/ 10 марта 2010

Прочтите это руководство, и вы можете найти полезную информацию, когда нужна таблица поиска:

SQL: создание таблицы поиска

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...