W języku SQL istnieje sposób na wymuszenie, że tylko jedna kolumna z grupy kolumn ma wartość, a pozostałe mają wartość zerową? Może ograniczenie lub spust? Tego typu rzeczy mogą dotyczyć tabeli odnośników, ale czy istnieją alternatywne projekty tabel, które mogłyby to ulepszyć?SQL: jak wymusić ustawienie tylko jednej kolumny w grupie kolumn
Na przykład:
ID OtherTable1ID OtherTable2ID OtherTable3ID
-----------------------------------------------------
1 23 NULL NULL
2 NULL 45 NULL
3 33 55 NULL -- NOT ALLOWED
Głównym problemem jest to, że kolumny te są FKS do innych tabel, więc nie mogę zwinąć je w dół do pojedynczej kolumny.
Używam programu SQL Server, ale każda odpowiedź wystarczy.
Dzięki za aktualizację, ale możesz chcieć podać więcej szczegółów na temat projektu bazy danych. Na przykład, czy jest to sytuacja podtytułowa, w której ta tabela może być podtypem jednej i tylko jednej z pozostałych tabel. Czy dozwolone jest także zerowanie wszystkich kolumn "Inne"? –
Wygląda jak tabela odnośników. Czy to w zasadzie oznacza, że jeśli dodasz jeszcze jeden FK, dodasz do niego jeszcze jedną kolumnę? –
Tak, to dla mnie po prostu tablica porównawcza. Jeśli muszę dodać kolejny parametr wyszukiwania, będę musiał dodać kolejną kolumnę FK. Czy istnieją lepsze sposoby osiągnięcia tego? –