Changes between Version 1 and Version 2 of Projeto/PadroesparaBancosdeDados


Ignore:
Timestamp:
10/24/14 14:14:07 (10 years ago)
Author:
viani
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Projeto/PadroesparaBancosdeDados

    v1 v2  
    1212 * Separe palavras e prefixos com "_" (underline), nunca use espaços. 
    1313  * 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'). 
    1515  * maior independência de plataforma. 
    1616 
     
    2424   Exemplo sem identação: 
    2525 
    26    SELECT filial_id, produto_id, pro_descricao, pro_valor_unitario FROM produto WHERE filial_id = 2 
    27    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'; 
    2828 
    2929   Exemplo com identação: 
    3030 
    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'; 
    3635}}} 
    3736 
     
    6766 
    6867 * 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". 
    7069  * consistência com o nome da chave primária. 
    7170  * 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 PK 
     71  * 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. 
    7473 
    7574 * Chaves estrangeiras devem ter o mesmo nome das chaves primárias às quais elas se referem. 
    7675  * 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). 
    7877 
    7978== Restrições (Constraints) == 
    8079 
    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). 
    8482 
    8583== Índices == 
    8684 
    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).