Rumah > Artikel > pangkalan data > Bolehkah Django Mengendalikan Kunci Asing Merentasi Pangkalan Data Berbeza?
Pengguna Django mungkin menghadapi ralat semasa mengakses kunci asing merentas pangkalan data yang berbeza. Ralat ini berlaku apabila model dalam satu pangkalan data cuba merujuk model daripada pangkalan data lain.
Dalam contoh yang disediakan, LinkModel ditakrifkan dalam pangkalan data 'url', manakala NewsModel ditakrifkan dalam pangkalan data lalai.
Ralat timbul apabila cuba memberikan contoh LinkModel kepada medan kunci asing bagi objek NewsModel. Mesej ralat menunjukkan bahawa contoh yang ditetapkan berada pada pangkalan data 'url' manakala objek NewsModel berada pada pangkalan data 'lalai'.
Mengikut kepada dokumentasi Django, perhubungan silang pangkalan data tidak disokong untuk kunci asing dan perhubungan banyak-ke-banyak. Had ini dikenakan kerana isu keserasian dan masalah integriti data yang berpotensi.
Selain pengehadan yang didokumenkan, pepijat dalam kelas ForeignKey dalam Django versi 1.2, 1.3 dan 1.4rc1 juga boleh menyebabkan isu ini.
Satu penyelesaian yang mungkin adalah menggunakan tampung yang menyelesaikan pepijat dalam ForeignKey kelas. Tampalan ini boleh didapati dalam sistem tiket Django.
Dengan menggunakan tampung ini, mungkin untuk mewujudkan perhubungan utama asing merentas pangkalan data yang berbeza. Walau bagaimanapun, pengguna harus sedar bahawa ini bukan ciri yang disokong secara rasmi dan mungkin memperkenalkan isu berpotensi lain.
Atas ialah kandungan terperinci Bolehkah Django Mengendalikan Kunci Asing Merentasi Pangkalan Data Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!