|
Тема |
Re: Професионален ? спор :) [re: Dakota] |
|
Автор |
phpGuru (непознат) |
|
Публикувано | 10.10.02 18:53 |
|
|
тъп пример и абсолютно неразбран може би ;-))
CREATE TABLE colors (
id serial NOT NULL PRIMARY KEY,
name varchar(64) NOT NULL
);
INSERT INTO color VALUES ('червен')
-- и други цветове
и сега един вариант
CREATE TABLE cars (
id serial NOT NULL primary key,
name varchar(128) NOT NULL,
color int4 NULL REFERENCES colors
);
и друг
CREATE TABLE car (
id serial NOT NULL primary key,
name varchar(128) NOT NULL,
color int4 NOT NULL REFERENCES color
);
проблема е винаги ли знаеш цвета на колата,
първият вариант допуска такова незнание и при евентуален JOIN то ще бъде пропуснат (тук съвсем я окалпах, ама ме цепи глава и немога да се връщам), (ако искаш да фанеш и неопределените цветове ползваш OUTER JOIN)
вторият вариант ако искаш да има цвят неопределен си вмъкваш в първата таблица ред
INSERT INTO color VALUES ('неопределен')
и тогава обаче при JOIN винаги ще се проверява и в таблицата color и приложението трябва да прави то проверка, дали това е неопределен
аз харесвам първият вариант когато може да не се знае цвета и вторият вариант когато цвета е задължителен
________________________
ако е адски неясно друг път ще пояснявам кво съм искал да кажа
|
| |
|
|
|