Bom dia, estamos criando uma aplicação usando postgres, e gostaria de tirar uma duvida…
Vamos supor que estivesse criando uma tabela com 4 campos como chave primaria. a tabela tem mais outros 10 campos que não são chave primaria, e 1 outro campo que é uma chave estrangeira.
Faz alguma diferença se eu usar os 4 PKs como primeiros campos na tabela, ou se deixar a FK entre esses 4, ou deixar a FK como ultimo campo da tabela, ou deixar os 4PKs e a FK espalhadas entre os outros campos da tabela?
você diz na ordem da criação? na query?
eu creio que não faça diferença nenhuma, mas é costume deixar como os primeiros campos.
isso, o motivo de eu criar esse tópico foi porque temos um sistema aqui na empresa que roda em delphi usando o firebird, e algumas tabelas com chave primaria composta(varios campos) se a ordem das colunas que consistem chave primaria estiver em uma ordem X, quando acessamos a tabela pelo sistema da alguns erros, ja se estiver na ordem Y funciona normalmente…
mas não sei que erros são aqueles e nem porque acontece pois não mecho em delphi, então surgiu essa dúvida.
Será que não afeta a pesquisa ou algum outro recurso do BD de alguma forma?
Você está criando então uma tabela atributiva, composta por chaves e atributos, não muda nada a ordem de criação, tanto é que em uma modelagem de DER você liga as tabelas e acrescenta as chaves na ordem que quiser, e o “modelador” cria exatamente na ordem que está no diagrama, não sei em outros SGBDS mas no postgres sempre usei em qualquer ordem em tabelas grandes e pequenas e na aplicação faz CRUD normal.
[quote=digaoneves]você diz na ordem da criação? na query?
eu creio que não faça diferença nenhuma, mas é costume deixar como os primeiros campos.[/quote]
Digo o mesmo, ate porque quem gerencia isso é o banco de dados.
Porém, pode ser que o firebird não gerencie igual aos outros banco de dados, pois a sua pergunta é referente ao postgree correto?
Crie uma tabela identica ao seu do firebird no postgree e faça o teste.
Abraços