Aqui está como eu faço:
- Os nomes das tabelas são minúsculas, as utilizações sublinhados para separar palavras, e são singular (por exemplo
foo
,foo_bar
, etc. - Geralmente (nem sempre) tenho um PK de incremento automático. I usar a seguinte convenção:
tablename_id
(por exemplofoo_id
,foo_bar_id
, etc.). - Quando uma tabela contém uma coluna que é uma chave estrangeira, apenas copio o nome da coluna dessa chave de qualquer tabela da qual ela veio. Por exemplo, digamos que a tabela
foo_bar
tenha o FKfoo_id
(ondefoo_id
está o PK defoo
). - Ao definir FKs para impor a integridade referencial, eu uso o seguinte:
tablename_fk_columnname
(por exemplo, avançar o exemplo 3, seriafoo_bar_foo_id
). Como essa é uma combinação de nome de tabela / nome de coluna, é garantido que seja exclusivo no banco de dados. - Eu ordeno as colunas assim: PKs, FKs e o restante das colunas alfabeticamente
Existe uma maneira melhor e mais padrão de fazer isso?
id_tableB
=> oh não coluna diferente de nome id
, a consistência de id_tableB
=> id_tableB
apenas parece mais puro ... ou como OP faz isso: foo_id
=> foo_id
em vez de foo_id
=>id