Changes between Version 1 and Version 2 of Projeto/PadroesparaBancosdeDados
- Timestamp:
- 10/24/14 14:14:07 (10 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Projeto/PadroesparaBancosdeDados
v1 v2 12 12 * Separe palavras e prefixos com "_" (underline), nunca use espaços. 13 13 * melhora legibilidade (ex: nome_livro). 14 * evita a necessidade de envolver nomes com colchetes (ex: [ nome livro] ou 'nome livro').14 * evita a necessidade de envolver nomes com colchetes (ex: [account type] ou 'account type'). 15 15 * maior independência de plataforma. 16 16 … … 24 24 Exemplo sem identação: 25 25 26 SELECT filial_id, produto_id, pro_descricao, pro_valor_unitario FROM produto WHERE filial_id= 227 AND pro_valor_unitario > 100;26 SELECT pk_address, fk_contact, address, complement FROM contaccenter_address WHERE fk_address_type = 2 27 AND country = 'Brazil'; 28 28 29 29 Exemplo com identação: 30 30 31 SELECT filial_id, produto_id, pro_descricao, pro_valor_unitario 32 FROM produto 33 WHERE filial_id = 2 34 AND pro_valor_unitario > 100; 35 31 SELECT pk_address, fk_contact, address, complement 32 FROM contaccenter_address 33 WHERE fk_address_type = 2 34 AND country = 'Brazil'; 36 35 }}} 37 36 … … 67 66 68 67 * A chave primária deve ter o nome da tabela com o prefixo "pk_". 69 * permite que a chave primária seja deduzida ou lembrada a partir apenas do nome da tabela (ex: chave primária da tabela " produto" seria "pk_produto".68 * permite que a chave primária seja deduzida ou lembrada a partir apenas do nome da tabela (ex: chave primária da tabela "language" seria "pk_language". 70 69 * consistência com o nome da chave primária. 71 70 * evita a necessidade de usar apelidos (alias) na programação. 72 * para tabelas que possuem mais de um campo compondo a chave primária, essa regra não se aplica, sendo que os campos poderão continuar tendo o prefixo "pk_", porém o nome que sucede o prefixo " Pk_" terá que ser outro diferente do nome da tabela. Ex: tabela "imobilizado", PK = pk_patrimonio + pk_ano;73 * quando a chave primária é composta por campos FK, os mesmos permanecerão com os nomes dos campos PK das tabelas relacionadas. Ex: tabela " item_nota_fiscal", a PK seria pk_nota_fiscal e pk_item_nota_fiscal, onde o campo pk_nota_fiscal é a FK que vem de outra tabela e o campo pk_item_nota_fiscal é da própria tabela em questão, e ambos juntos formam a PK71 * para tabelas que possuem mais de um campo compondo a chave primária, essa regra não se aplica, sendo que os campos poderão continuar tendo o prefixo "pk_", porém o nome que sucede o prefixo "pk_" terá que ser outro diferente do nome da tabela. Ex: tabela "config", PK = pk_application + pk_config_name; 72 * quando a chave primária é composta por campos FK, os mesmos permanecerão com os nomes dos campos PK das tabelas relacionadas. Ex: tabela "application_log", a PK seria pk_application e pk_item_log, onde o campo pk_application é a FK que vem de outra tabela e o campo pk_item_log é da própria tabela em questão, e ambos juntos formam a PK. 74 73 75 74 * Chaves estrangeiras devem ter o mesmo nome das chaves primárias às quais elas se referem. 76 75 * faz com que as tabelas às quais elas se referem fique óbvio; 77 * se houver múltiplas chaves estrangeiras se referenciando a uma mesma tabela, prefixe o campo da chave estrangeira com um nome descritivo apropriado ( adjetivo_nome_campo, ex: fk_titular_funcionario_id, fk_substituto_funcionario).76 * se houver múltiplas chaves estrangeiras se referenciando a uma mesma tabela, prefixe o campo da chave estrangeira com um nome descritivo apropriado (fk_adjetivo_nome_campo, ex: fk_titular_funcionario, fk_substituto_funcionario). 78 77 79 78 == Restrições (Constraints) == 80 79 81 * O nome da chave primária deverá ser formado pelo nome da tabela, acrescido do sufixo _pkey. (Ex: tabela "reserva_sala", chave "reserva_sala_pkey"). 82 * O nome das chaves estrangeiras deverão ser formados pelo nome da tabela + o sufixo _fknn, onde 'nn' é um sequencia começando em '01'. (Ex: reserva_sala_fk01). 83 * O objetivo de nomear as chaves estrangeiras em sequência é simplificar a escrita. 80 * O nome da chave primária deverá ser formado pelo nome da tabela, acrescido do sufixo "_pkey". (Ex: tabela "emailadmin_domains", chave "emailadmin_domains_pkey"). 81 * O nome das chaves estrangeiras deverão ser formados pelo nome da tabela + nome do campo + sufixo "_fkey". (Ex: emailadmin_domains_pk_emailadmin_fkey). 84 82 85 83 == Índices == 86 84 87 * O nome de um índice deverá ser formado pelo nome da tabela + campo indexado + sufixo _idx. (Ex: ocorrencia_servico_id_idx).85 * O nome de um índice deverá ser formado pelo nome da tabela + campo indexado + sufixo _idx. (Ex: accounts_name_idx).