У меня есть ситуации, когда веб-сайт (источник) имеет несколько каналов (категория разделена)Специальных уникальные столбцов
Feed Table
feed_id | source_id | feed_url
1 | 1 | http://example.com/rss?category=1
2 | 1 | http://example.com/rss?category=5
3 | 2 | http://textample.com/rss
Item Table
item_id | true_id | feed_id
1 | 1332 | 1
2 | 76549 | 1
3 | 76549 | 2
4 | 76549 | 3
истинный идентификатор идентификатор я пытаюсь получить от исходного сайта.
Я хочу, чтобы элемент id 2 & 3 были одинаковыми, потому что они имеют один и тот же источник (пример.com), элемент 4 - это не то же самое, потому что он имеет другой источник (textample.com) Есть ли способ, которым я могу обеспечить согласованность, не добавляя исходный идентификатор в таблицу позиций?
Предполагая, что вы говорите, что в 'Item' столе,' 'пара уникальна, только если каналы имеют разные' source_id'. Тогда я думаю, вам нужно добавить 'source_id' с добавлением' UNIQUE ', я не могу придумать способ каскадировать ограничение уникальности. –
Orbling
Вот что я пытаюсь сказать, я просто чувствовал, что добавление идентификатора источника является своего рода redudant, потому что пара 'feed_id, source_id' всегда одна и та же – Moak
Да, это так. С точки зрения нормализации данных. Но ваше ограничение уникальности находится в 'source_id', а не' feed_id', в то время как все еще нужно ссылаться на 'feed_id' как ограничение внешнего ключа. – Orbling