Há alguma convenção de nomes para o MySQL?

É assim que eu faço:
  1. os nomes das tabelas são minúsculos, usam sublinhados para separar palavras, e são singulares (por exemplo, "foo", "foo_bar", etc.
  2. geralmente (nem sempre) tenho um aumento automático PK. I use the following convention: tablename_id (e.g. "foo_id", "foo_bar_id", etc.).
  3. Quando uma tabela contém uma coluna que é uma chave estrangeira, Eu apenas copio o nome da coluna dessa chave de qualquer tabela de onde ela veio. Por exemplo, diga que a tabela "foo_bar" tem o FK "foo_id" (em que "foo_id" é o PK de "foo").
  4. ao definir FKs para fazer respeitar a integridade referencial, eu uso o seguinte: tablename_fk_columnname (por exemplo, dando continuidade ao exemplo 3, seria 'foo_bar_foo_id'). Uma vez que esta é uma combinação de nome de tabela/coluna, é garantido ser único dentro do banco de dados.
  5. ordeno as colunas assim: PKs, FKs, depois o resto das colunas alfabeticamente
Há uma maneira melhor e mais normal de fazer isto?

Author: StackOverflowNewbie, 2011-10-26

4 answers

Eu diria que, acima de tudo, seja coerente. Acho que está quase lá com as convenções que delineou na sua pergunta. Alguns comentários: Acho que os pontos 1 e 2 são bons. Ponto 3-infelizmente isso nem sempre é possível. Pense em como você lidaria com uma única tabela foo_bar que tem colunas foo_id e another_foo_id que fazem referência à coluna foo Tabela foo_id. Talvez queiras pensar em Como lidar com isto. Isto é ... mas é um caso de canto!

Ponto 4 - semelhante ao ponto 3. Você pode querer introduzir um número no final do nome da chave estrangeira para atender para ter mais de uma coluna de referência.

Ponto 5-eu evitaria isto. Fornece-lhe pouco e tornar-se-á uma dor de cabeça quando você quiser adicionar ou remover colunas de uma tabela em uma data posterior.

Alguns outros pontos são:

Convenções De Nomes De Índices

Você pode querer introduzir um nome convenção para índices-esta será uma grande ajuda para qualquer trabalho de metadados de banco de dados que você pode querer realizar. Por exemplo, você pode apenas querer chamar um índice foo_bar_idx1 ou foo_idx1 - totalmente depende de você, mas vale a pena considerar.

Singular vs Plural nomes de colunas

Pode ser uma boa ideia abordar a questão espinhosa do plural vs single nos nomes das suas colunas, bem como o(s) Seu (s) Nome (s) da tabela. Este assunto causa muitas vezes grandes debates na comunidade DB. Eu ficaria com formas singulares para nomes de tabelas e Colunas. La. Já disse.

O mais importante aqui é a consistência!
 84
Author: Tom Mac, 2017-05-23 12:34:38

Consistência é a chave para qualquer padrão de nomenclatura. Desde que seja lógico e consistente, estás 99% lá.

O padrão em si é uma preferência muito pessoal-então, se você gosta do seu padrão, então corra com ele.

Para responder à sua pergunta de uma vez por todas-Não, O MySQL não tem uma convenção/padrão de nomenclatura preferida, por isso rolar o seu próprio está bem (e o seu parece lógico).

 16
Author: mwan, 2011-10-26 06:16:01

O MySQL tem uma breve descrição das suas regras mais ou menos rigorosas:

Https://dev.mysql.com/doc/internals/en/coding-style.html

O codingstyle mais comum para o MySQL por Simon Holywell:

Http://www.sqlstyle.guia/

Ver também esta questão.: Há algum código publicado para o SQL?

 6
Author: DanFromGermany, 2017-05-23 12:34:38
Felizmente, os programadores do PHP não são "fanáticos do caso Camel" como algumas comunidades de desenvolvimento que conheço. As tuas convenções soam bem.

Desde que sejam a) simples, e B) consistentes-não vejo problemas :)

PS: Pessoalmente, eu acho que 5) é exagero...

 4
Author: paulsm4, 2013-01-19 04:44:33