Estou ainda empolgado com os recursos de um bom modelo e bem normalizado.
Trago agora mais alguns tópicos que gostaria de discutir:
Valor default
Chaves naturais x artificiais
Null
--Default
create table nula(c1 serial primary key, c2 int, c3 int default 0);
insert into nula (c1) values (default),(default),(default),(default);
select * from nula;
c1 | c2 | c3
----+----+----
1 | | 0
2 | | 0
3 | | 0
4 | | 0
(4 registros)
Veja só que riqueza de registros! Tudo isso graças a permissão de nulo e ao
valor default.
--Nulo
create table nula2(c1 int primary key, c2 int check(c2 > 0), c3 int);
insert into nula2(c1,c2,c3) values (1,default,4); -- Será válido.
Importante: use not null
insert into nula2(c1,c2,c3) values (2,-3,4)
select * from nula2;
c1 | c2 | c3
----+----+----
1 | | 4
(1 registro)
Uma "incoerência" no comportamento do nulo, que reforça a recomendação de se
evitar seu uso.
--Chave artificial
create table artificial(c1 serial primary key, t1 text, t2 text);
insert into artificial(t1,t2) values
('a','b'),('a','b'),('a','b'),('a','b'),('a','b'),('a','b');
select * from artificial;
c1 | t1 | t2
----+----+----
1 | a | b
2 | a | b
3 | a | b
4 | a | b
5 | a | b
6 | a | b
(6 registros)
Este ganha dos demais, em minha opinião. O cara cria uma chave tipo ID, que
ela é a única coisa que não pode ser duplicada.
Então veja que todos os registros estão duplicados.
--
Ribamar FS - [EMAIL PROTECTED]
http://ribafs.net
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral