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
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a