Что такое таблица поиска?
Я только что дал диаграмму базы данных для базы данных, созданной мной для нашего руководителя базы данных, и она поставила кучу заметок на ней, предлагая переименовать определенные таблицы, чтобы было ясно, что они представляют собой таблицы поиска (добавьте "lu" в начало имени таблицы).
Моя проблема в том, что они не соответствуют определению того, что я считаю таблицей поиска. Я всегда рассматривал таблицу поиска в основном как набор опций, которые не определяют отношения. Пример:
luCarMake
-----------
id Make
-- ---------
1 Audi
2 Chevy
3 Ford
Лицо базы данных при моей работе указывает на то, что я переименовываю несколько таблиц, которые являются только идентификаторами, сопоставляющими одну таблицу с другой как таблицы поиска. Пример (Location_QuadMap ниже):
Location
----------
LocationId
name
description
Location_QuadMap <-- suggesting i rename this to luLocationQuad
----------------
QuadMapId
LocationId
luQuadMap
---------
QuadMapId
QuadMapName
Можно ли предположить, что она неправильно читает диаграмму или есть другое определение, о котором я не знаю?
Ответы
Ответ 1
То, что у вас там, называется таблица соединений. Он также известен как:
- таблица перекрестных ссылок
- Таблица моста
- присоединиться к таблице
- Таблица карт
- таблица пересечений
- таблица ссылок
- Таблица ссылок
Но я никогда не видел термин "таблица поиска", используемый для этой цели.
Ответ 2
Выберите свои битвы, но я попрошу человека прояснить соглашение об именах, увидев, что они предложили использовать одно и то же соглашение для отношений "один ко многим" и "многие ко многим", Похоже, что любое отношение внешних ключей означает наличие таблицы поиска.
Если это соглашение об именах для других баз данных, то я бы не стал удачи.
Ответ 3
Таблица поиска обычно представляет собой таблицу, которая действует как "главный список" для чего-то, и вы используете ее для поиска значения бизнес-ключа (например, "Make" ) в exachange для его идентификатора (например, столбца id) для использования в другой таблице столбец внешнего ключа.
В принципе, вы приходите с чем-то, чтобы "искать" и обменивать его на что-то другое.
Location_quadmap с другой стороны - это таблица моста, которая, как уже говорили другие, используется, когда у вас есть отношение "многие ко многим" между двумя объектами. Если вы вызовете эту таблицу поиска, я бы сказал, что любую таблицу можно назвать поисковой таблицей. Эти таблицы содержат только идентификаторы для других таблиц, поэтому вам придется сначала искать идентификатор в одной таблице, искать идентификаторы, которые соответствуют таблице моста, а затем искать соответствующие строки (строки) в 3-й стол? Кажется, что этот термин слишком затянулся.
Ответ 4
Некоторые люди используют термин Lookup Table в качестве таблицы, которая находится в середине отношения многих и многих.
Ответ 5
Mark Byers имеет правильное определение для этой таблицы. В основном таблица пересечений. См. Учебник по базе данных.
Но на самом деле я работал со многими администраторами баз данных/архитекторов, и большинство из них изобретают свой собственный стиль для того, чтобы что-то делать, и не могут ничего слышать. Такие вещи, как правила отступов, регистр для операторов SQL, соглашения об именах для таблиц (даже очень плохие), архивные стратегии и т.д. У вас нет выбора, если они контролируют базу данных. Вы можете упомянуть, что это таблица пересечений, указывать на правильную литературу, но в конце, если она хочет называть ее MyStupidlyLongAndPointlessPrefixForTablesBecauseICan_Lookup_Location_Quadmap и настаивает, что вы ничего не можете сделать.
Поэтому постарайтесь указать ей, но если она не согласна с этим, не воспринимайте это слишком серьезно...
Я просто подумал о чем-то другом. Таблицы поиска (наше определение) обычно называются также таблицами кодов. Поэтому она может вызывать таблицы поиска таблиц пересечений и таблицы кодов таблиц поиска. В этом случае вам, возможно, придется научиться говорить на своем языке...
Ответ 6
Таблица поиска - это таблица, содержащая только идентификатор, имя и описание какого-либо объекта/объекта/вещи. Идентификатор - это первичный ключ и auto_increment. Больше ничего.