Satırların birbirleri ile ilişkili olabileceği bir tablo var ve mantıksal olarak, ilişki iki satır arasında her iki şekilde (temelde, yönsüz) gider. (Ve merak ediyorsanız, evet, bu gerçekten bir tablo olmalıdır. Aynı mantıksal varlık / türden iki şeydir.) Bunu temsil etmenin birkaç yolunu düşünebilirim:
- İlişkiyi ve tersini sakla
- İlişkiyi bir şekilde saklayın, veritabanını başka bir şekilde saklamaktan koruyun ve FK'ler için ters sırada iki dizine sahip olun (bir dizin PK dizini)
- İlişkiyi iki dizinle bir şekilde saklayın ve ikincinin yine de eklenmesine izin verin (sesler biraz yucky, ama hey, bütünlük)
- Bir çeşit gruplama tablosu oluşturun ve orijinal masasında bir FK'ye sahip olun. (Çok fazla soru soruyor. Gruplama tablosunda sadece bir sayı var; neden tablo bile var? FK NULLable yapın veya tek sıralı gruplar ilişkili mi?)
Bu yolların bazı büyük artıları ve eksileri nelerdir ve elbette, düşünmediğim bir yol var mı?
İşte oynamak için bir SQLFiddle: http://sqlfiddle.com/#!12/7ee1a/1/0 . (Ben kullandığım için PostgreSQL olduğu gibi, ama bu sorunun PostgreSQL için çok spesifik olduğunu düşünmüyorum.) Şu anda hem örnek hem de tersini saklıyor.