Vai outra idéia, que utilizamos...

Cada tabela tem uma sigla de 3 caracteres que a representa e esta sigla faz 
parte do nome de seus campos.

Exemplo:
Clientes: CLI
Fornecedores: FOR
Notas de saída: NFS
Notas de entrada: NFE

Desta forma não terás dois campos com mesmo nome em tabelas diferentes, 
porque na tabela de clientes será cli_codigo, cli_razao_social e em 
fornecedor será for_codigo, for_razao_social, e assim por diante

Essa técnica é muito útil quando precisar encontrar onde um campo é 
utilizado (se um dia precisar mudar sua definição), pois em todo o sistema 
será sempre o mesmo e não terás problemas em criar as fks nas outras 
tabelas, porque os campos tens nomes diferentes.

Att,

Celso Lorenzetti
www.sysrs.com.br


----- Original Message ----- 
From: "Tarcísio Sassara" <[email protected]>
To: "Comunidade PostgreSQL Brasileira" <[email protected]>
Sent: Thursday, December 17, 2009 9:27 AM
Subject: Re: [pgbr-geral] [Meio-OFF] Casing e Nomenclaturas


2009/12/16 George Silva <[email protected]>:
> Boa tarde pessoal,
>
> Em geral qual é o tipo de padrão de digitação e nomenclatura que vocês
> seguem ao trabalhar com tabelas, indíces, chaves, procedures etc? Eu sei 
> que
> no caso do PostgreSQL casing é um pouco irrelevante...mas...
>
> CamelCase? muitos_underlines_?
>
> E quanto à nomenclatura dos objetos?
> Tabelas: tbl_foo;
> Chaves: tbl_foo_pk;
> Indices: idx_tbl_foo_campo1?
>
> É mais uma curiosidade mesmo...
>

Tirei uns trechos de uma documentação minha:

Nunca uso caixa alta.
Tabelas com substantivos no plural:
usuarios
produtos

E as views como uma extensão das tabelas com nomes descritivos:
usuarios_bloqueados

Colunas com nomes sem prefixo identificador.
Já vi muito colunas com nomes do tipo: str_nome e int_codigo.
Algumas vezes ajuda, principalmente depois de muito tempo sem mexer.
Mas prefiro usar nomes legais: nome, codigo, cpf e data_criacao. Eu sei os 
tipos
porque sempre uso os mesmos para colunas assim. colunas com nomes,
códigos e cpfs
uso sempre "string" (character varying).


Restrição do tipo chave primaria com nome singular com o sufixo "_pk":
usuario_pk

Check com nome e sufixo "_chk":
cpf_valido_chk

Uniques com sufixo "_unq":
cpf_unq

Chaves estrangeiras: <tabela>_<coluna_estrangeira>_fk:
produto_categoria_id_fk

Indices: <tabela>_<coluna>_idx:
produto_titulo_idx


Nas queries sempre coloco as palavras reservadas em maiúsculo:

SELECT  nome, cpf
FROM    usuarios
WHERE bloqueado = FALSE
AND      nome ILIKE 'joao%'


O Josh Berkus fala um pouco sobre nomes de tabelas aqui:
http://it.toolbox.com/blogs/database-soup/whats-up-with-the-singular-table-names-33590

É sempre bom documentar. Você pode colocar comentários nos objetos. Veja em:
http://www.postgresql.org/docs/8.4/interactive/sql-comment.html

E com os comentários o autodoc pode gerar uma documentação:
http://www.rbt.ca/autodoc/

-- 
Tarcisio F. Sassara
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a