Помогите с проектированием

Frutik

1024-й
Помогите с проектированием

есть база:



таблици:
point - дом
street - улица
city - город

btype - базовые типы услуг
atype - типы услуг доступные в городах

apoint - список точек в которых доступен сервис

в даной схеме я не могу отслеживать (или не знаю как) целостность связи

apoint.type -> atype.id
тоесть чтобы база контролировала невозможность вставки для точки в городе X ключа который соответствует сервису доступному в городе Y
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
делать первичные ключи исключительно из одного поля типа serial --- дурная привычка. отучайся.
 

Crazy

Developer
Автор оригинала: Sad Spirit
делать первичные ключи исключительно из одного поля типа serial --- дурная привычка. отучайся.
Что имеется в виду под "ключами из полей типа serial"?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Crazy
Что имеется в виду под "ключами из полей типа serial"?
Имеется в виду, что в таблицу, где лучше бы смотрелся составной первичный ключ, лепится "суррогатный", тот который identity/autoincrement/serial...
 

Frutik

1024-й
страшно торможу... но как мне поможет то что в таблице atype primary key станет не id а (type, city) и что я вставлю в apoint.type ? id из atype? который должен быть unique not null (Тогда чем оно существенно отличается от primary key?)?
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
нет, у тебя просто в apoint будет внешний ключ из двух полей, который будет ссылаться на первичный ключ из двух полей в atype.
 

Crazy

Developer
Автор оригинала: Sad Spirit
Имеется в виду, что в таблицу, где лучше бы смотрелся составной первичный ключ, лепится "суррогатный", тот который identity/autoincrement/serial...
Лично я отношусь к сторонникам "синтетических" ключей, которые противники этой концепции обзывают "суррогатными". :)
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Автор оригинала: Crazy
Лично я отношусь к сторонникам "синтетических" ключей, которые противники этой концепции обзывают "суррогатными". :)
Хех. Я не являюсь ни "сторонником", ни "противником", буду использовать термин "синтетические", чтоб никого не обидеть. :)
Просто с большим удивлением вижу, как народ пытается сделать вездесущий ID даже в таблице, заведённой для отношения многие-ко-многим.
 

Crazy

Developer
Странно, у меня при прочтении треда не сложилось мнение, что автор имел в виду именно такое -- действительно стремное -- решение...
 
Сверху