[firebase-br] Ajuda projeto

Walter R. Ojeda Valiente sistemas2000profesional em gmail.com
Dom Jan 18 16:32:35 -03 2015


Para que el diseño de tus tablas sea eficiente, debes normalizarlas.

Hay varias normalizaciones posibles, las imprescindibles son las tres
primeras:
1FN = Primera forma normal
2FN = Segunda forma normal
3FN = Tercera forma normal

Si necesitas guardar varios teléfonos o varias direcciones, o varios lo que
sea, entonces deberías usar una tabla para cada una de esas cosas.

Tabla CLIENTES (con los datos únicos de cada cliente)
Tabla CLIENTES_TEL (para todos los números de teléfono que puede tener un
cliente)
Tabla CLIENTES_DIR (para todas las direcciones que puede tener un cliente)

Puedes leer estos artículos para tener más información:
https://firebird21.wordpress.com/2013/03/15/entendiendo-a-las-bases-de-datos/
https://firebird21.wordpress.com/2013/08/18/consideraciones-a-tener-en-cuenta-al-disenar-una-base-de-datos/
https://firebird21.wordpress.com/2013/08/19/diseno-de-bases-de-datos-1fn/
https://firebird21.wordpress.com/2013/08/19/mas-ejemplos-de-tablas-que-no-cumplen-con-la-1fn/
https://firebird21.wordpress.com/2013/08/20/diseno-de-bases-de-datos-2fn/
https://firebird21.wordpress.com/2013/08/20/diseno-de-bases-de-datos-3fn/

Saludos.

Walter.


2015-01-18 13:49 GMT-04:00 Qatan <wanstadnik em gmail.com>:

> Olá,
>
> Estou precisando de uma orientação com Firebird / modelagem.
>
> Qual é a melhor maneira de montar uma base de dados partindo de zero numa
> situação como esta:
>
> Quero fazer um cadastro de clientes (caso típico), porém quero deixar
> aberto para que o usuário possa cadastrar vários endereços para a mesma
> pessoa (cobrança, entrega, correspondência, faturamento, etc...) – talvez
> poderia deixar um limite de 4 endereços para facilitar (ou livre se houver
> uma melhor maneira de fazer isso). O endereço seria básico (para este
> exemplo) – CEP, Rua, Cidade, Estado.
>
> Além disso, queria deixar aberto para cadastrar vários telefones (Fax,
> Cobrança, Faturamento, Expedição, Contabilidade, etc...) – aqui também
> poderia limitar para 4...
>
> Também queria deixar aberto para cadastrar vários contatos de internet
> (email cobrança, email expedição, email NFe, FTP, website institucional,
> website/link para pedidos, skype, facebook, yahoo, etc..) poderia ter um
> limite maior como por exemplo 6, ou até ficar ilimitado (apesar que acho
> melhor limitar...)
>
> Os campos do cadastro neste exemplo seriam bem poucos (além dos já
> descritos acima:
>
> ID (pk)
> CODIGO VARCHAR 10
> NOME VARCHAR 50
>
> Será que fui claro no exemplo? Se alguém não entendeu talvez eu possa
> explicar melhor...
>
> Como fazer isso no Firebird? Como organizar as tabelas e os
> relacionamentos, ON DELETE/UPDATE rules...? Procuro algo que seja eficiente
> mas além de tudo fácil de implementar e manter, ou seja, o mais simples
> possível.
> Se alguém puder me ajudar seria muito interessante para meu aprendizado.
>
> Além disso, alguém se lembra do nome e onde conseguir aquele programa
> gratuíto (acho até que era open-source) que gera o design visual da base de
> dados Firebird, eu tinha aqui instalado mas perdi os meus dados (felizmente
> tinha backup da maioria), só que não lembro o nome do utilitário que fazia
> isso, lembro que achei por acaso pesquisando na internet mas agora não sei
> como foi que encontrei... não é nada pirata, é gratuíto mesmo e faz algo
> parecido com a opção “Database Designer” do IBEXPERT.
> Se alguém se lembrar e puder me dar a dica eu ficaria muito agradecido.
>
> Obrigado
>
> Qatan
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa



Mais detalhes sobre a lista de discussão lista