Pergunta

Tenho notado um monte de empresas usar um prefixo para suas tabelas de banco de dados. Por exemplo. mesas seria nomeado MS_Order, MS_User, etc. Existe uma boa razão para fazer isso?

A única razão que eu posso pensar é para evitar colisão de nomes. Mas isso realmente acontecer? Será que as pessoas executar vários aplicativos em um único banco de dados? Existe algum outro motivo?

Foi útil?

Solução

No SQL Server 2005 e acima do recurso esquema elimina a necessidade de qualquer tipo de prefixo. Um bom exemplo de seu uso pode ser encontrada através da leitura sobre a esquemas em AdventureWorks .

Em algumas versões mais antigas do servidor SQL, ter um prefixo para criar uma força pseudo namespace de sido útil com bancos de dados com muitas mesas.

Outros, que eu não posso realmente ver o ponto.

Outras dicas

Pessoalmente, não vejo qualquer valor nela. Na verdade, é uma chatice para intellisense-como características porque tudo começa com MS_. :) O Mestre concorda comigo também .

esquemas enormes, muitas vezes têm muitas mesas com fins semelhantes, mas distintas,. Assim, vários "segmentada" convenções de nomenclatura.

Darn, não conseguiu primeiro post: -)

Mesmo quando o banco de dados contém apenas uma aplicação, os prefixos pode ser útil agrupando como partes do conjunto de aplicativos. Então tabelas que informações containtain cutomer pode ser prefixados com cust_, aqueles que contêm informações armazém pode ser prefixado com inv_ (para o inventário), aqueles que contêm informações finacial pode ser prefixado com fin_, etc.

Eu trabalhei em sistemas onde há um banco de dados existente para uma aplicação que foi criada e mantida por uma empresa diferente e nós necessário para adicionar outro aplicativo que utiliza grandes quantidades dos mesmos dados com apenas algumas mesas extras da nossa própria, então, nesse caso, ter um prefixo de aplicativo específico pode ajudar com a separação.

bancos de dados Ligeiramente tangencialmente à pergunta original, eu vi usar prefixos para indicar o tipo de dados que a tabela está segurando. Haveria um prefixo para tabelas de pesquisa que são, obviamente, muito estático em tamanho e conteúdo e um prefixo diferente para as tabelas que contêm dados variáveis. Este, por sua vez, pode ser dividido em ter um prefixo para as tabelas que são adicionados ao mas não realmente mudou como logging, encomendas processadas, as transações dos clientes etc, e e outra para dados mais variáveis ??como saldo do cliente ou qualquer outra coisa. mesas de ligação também pode ter o seu próprio prefixo para separá-los também.

Eu nunca vi uma colisão de nomeação, já que normalmente não faz sentido colocar mesas de diferentes aplicações no mesmo espaço de nomes de banco de dados. Se você teve algum tipo de biblioteca reutilizável que pudesse ser integrado em diferentes aplicações, talvez que poderia ser uma razão, mas eu não vi nada parecido com isso.

Embora, agora que penso nisso, há alguns hospedagem barata fornecedores que só permitem aos usuários criar um número muito pequeno de bases de dados, de modo que seria possível executar um número de diferentes aplicações utilizando um único banco de dados, de modo desde que os nomes não fez collide (e como um prefixo convenção certamente ajudaria).

Várias aplicações usando uma mesa particular, corrigir. Prefixos evitar colisão de nomes. Além disso, torna-se bastante simples de tabelas de backup e mantê-los no mesmo banco de dados, basta alterar o prefixo e seu backup será totalmente funcional, etc. Além de que, é apenas uma boa prática.

Prefixos são uma boa maneira de resolver quais objetos SQL são associados com a qual aplicativo quando vários aplicativos mergulho no mesmo banco de dados.

Eu também tenho prefixado objetos SQL de forma diferente dentro do mesmo aplicativo para facilitar a gestão mais fácil da segurança. ou seja, todos os objetos com admin_ necessidade dessa segurança aplicada ea necessidade de descanso outra coisa.

prefixos pode ser útil para os seres humanos, ferramentas de pesquisa e scripts. Se a situação é simples, no entanto, provavelmente não há uso para eles em tudo.

É mais frequentemente uso se vários aplicativos estão compartilhando um banco de dados. Por exemplo, se você instalar o Wordpress, ele prefixos todas as tabelas com "wp_". Isso é bom se você quer que seus aplicativos para compartilhar dados muito facilmente (sessões em todas as aplicações em sua empresa, por exemplo.)

Existem melhores maneiras de conseguir isso no entanto, e eu nunca prefixo meus nomes de tabela, já que cada aplicação tem seu próprio banco de dados auto-suficiente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top