O que é uma mesa de consulta?

eu acabei de dar um diagrama de banco de dados para um DB que eu criei para a nossa pessoa de banco de dados head e ela colocou um monte de notas sobre ele sugerindo que eu renomeei certas tabelas para que fique claro que eles são tabelas de pesquisa (adicionar "lu" ao início do nome da tabela).

O meu problema é que estes não se encaixam na definição do que considero ser uma mesa de consulta. Eu sempre considerei uma tabela de olhar para cima basicamente ser um conjunto de opções que não definem nenhum relacionamento. Exemplo:

luCarMake
-----------
id    Make
--    ---------
1     Audi
2     Chevy
3     Ford

a a pessoa do banco de dados em meu trabalho está sugerindo que eu renome várias tabelas que são apenas IDs mapeando uma tabela para outra como tabelas de pesquisa. Exemplo (Localização_ Cadadmap abaixo):

Location
----------
LocationId
name
description

Location_QuadMap <-- suggesting i rename this to luLocationQuad
----------------
QuadMapId
LocationId

luQuadMap
---------
QuadMapId
QuadMapName
É seguro assumir que ela leu mal o diagrama ou há outra definição que eu não saiba?

Author: skaffman, 2010-08-06

7 answers

O que você tem lá é chamado de tabela de junção . É também conhecido como:

  • Tabela de referência cruzada
  • bridge table
  • junta-te ao quadro
  • Tabela de mapas
  • Tabela de intersecção
  • Tabela de ligação
  • Tabela de ligações
Mas nunca vi o termo "tabela de pesquisa" usado para este fim.
 29
Author: Mark Byers, 2010-08-05 23:07:18

Escolher suas batalhas, mas eu gostaria de pedir para a pessoa para esclarecer a convenção de nomenclatura vendo que eles sugeriram a utilização da mesma convenção para um-para-muitos e muitos-para-muitos relacionamentos. Parece que qualquer relação chave estrangeira significa que há uma tabela de pesquisa envolvida.

Se essa é a Convenção de nomes para outras bases de dados, então eu não adiaria a minha sorte.
 20
Author: OMG Ponies, 2010-08-05 23:10:54

Uma tabela de pesquisa é normalmente uma tabela que funciona como uma " lista principal "para alguma coisa e você a usa para procurar um valor de chave de negócio (como" Make") no exachange para o seu identificador (como a coluna id) para ser usado em alguma outra coluna de chave estrangeira de outra tabela.

Basicamente, entras com algo para" olhar para cima " e trocá-lo por outra coisa.

O mapa de localização do outro lado é uma tabela de pontes que, como outros já disseram, é usada quando se tem um muitos-para-muitos relação entre duas entidades. Se chamas a isso uma mesa de pesquisa, eu diria que qualquer mesa pode ser chamada de mesa de pesquisa. Essas tabelas só contêm identificadores para outras tabelas, então você teria que primeiro procurar o id em uma tabela, procurar os id(s) que correspondem na tabela de ponte, e então procurar a linha correspondente na terceira tabela? Parece estar a levar o termo um pouco longe demais.

 10
Author: Patrick Marchand, 2010-08-05 23:29:15

Algumas pessoas usam o termo tabela de consulta como a tabela que se senta no meio de uma relação de muitos para muitos.

 4
Author: Justin Niessner, 2010-08-05 23:04:11
O Mark Byers tem a definição certa para essa tabela. Basicamente, uma mesa intersect. Veja qualquer livro de dados. Mas, na realidade, trabalhei com muitos Arquitectos e a maioria inventa o seu próprio estilo para fazer as coisas e não está aberta a ouvir mais nada. Coisas como regras de indentação, caso para declarações SQL, Convenções de nomenclatura para tabelas (mesmo as muito más), estratégias de arquivos, etc... Você basicamente não tem escolha se eles estão no controle da base de dados. Podes. mencione que é uma tabela intersect, aponte para a literatura apropriada, mas no final se ela quiser chamá-la de Mydupidlylong Andpointless Prefixfortablesbecauseican_lookup_location_quadmap e insiste que não há nada que você possa fazer. Por isso, tenta dizer-lhe, mas se ela não concordar, não leves isso muito a sério... Lembrei-me de outra coisa. Tabelas de pesquisa (nossa definição) são comumente chamadas tabelas de código também. Então ela pode chamar as mesas intersect para procurar tabelas e tabelas de pesquisa tabelas de códigos. Nesse caso, talvez tenhas de aprender a falar a língua dela...
 4
Author: Cervo, 2010-08-06 00:13:03

A tabela de pesquisa é a tabela que contém apenas ID, nome e descrição de algum assunto/objeto/coisa. ID é a chave primária e auto_increment. Nada mais.

 2
Author: user3059225, 2015-10-23 17:53:56

Uma utilização da tabela de pesquisa é para guardar os valores de enum caso contrário.

Temos um enum.

Em vez de salvar "Not Started", "In Progress", "Completed", "Sent Back"... em cada registro na base de dados, Estamos salvando inteiro 1, 2, ... apenas.

No lado da programação, o ORM como Entity Framework pode facilmente converter um inteiro subjacente em um tipo Enum.

Desta forma, a desvantagem é que o valor inteiro não é legível do lado da base de dados. Em resolvendo este problema, adicionamos uma tabela de pesquisa como

Id   Status
1    Not Started
2    In Progress
...

De modo que o nosso DBA possa ter um dicionário para "procurar", mostrando o texto de Estado, juntando-se a esta tabela de pesquisa.

 1
Author: Blaise, 2018-02-01 21:05:13