Há alguma convenção de nomes para o MySQL?
- os nomes das tabelas são minúsculos, usam sublinhados para separar palavras, e são singulares (por exemplo, "foo", "foo_bar", etc.
- geralmente (nem sempre) tenho um aumento automático PK. I use the following convention: tablename_id (e.g. "foo_id", "foo_bar_id", etc.).
- 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").
- 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.
- ordeno as colunas assim: PKs, FKs, depois o resto das colunas alfabeticamente
4 answers
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 índicefoo_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!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).
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:Ver também esta questão.: Há algum código publicado para o SQL?
Desde que sejam a) simples, e B) consistentes-não vejo problemas :)
PS: Pessoalmente, eu acho que 5) é exagero...