新聞中心
跨數(shù)據(jù)庫關系
Django 當前不提供對跨多數(shù)據(jù)庫的外鍵或多對多關系任何支持。如果已經(jīng)使用路由來分隔模型到不同數(shù)據(jù)庫,那么通過這些模型來定義的任何外鍵和多對多關系必須在單一數(shù)據(jù)庫內(nèi)。

為企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)站優(yōu)化、成都全網(wǎng)營銷、競價托管、品牌運營等營銷獲客服務。創(chuàng)新互聯(lián)建站擁有網(wǎng)絡營銷運營團隊,以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗助力企業(yè)精準獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術實力解決了企業(yè)“網(wǎng)站建設、網(wǎng)絡品牌塑造、網(wǎng)絡營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉化率,獲得了眾多企業(yè)客戶的高度認可!
這是因為參照完整性。為了維護兩個對象之間的關系,Djagno 需要知道這個相關對象的外鍵是否是合法的。如果外鍵被保存在單獨的數(shù)據(jù)庫上,則無法輕松評價外鍵的合法性。
如果你正在使用 Postgres,Oracle,或支持 InnoDB 的 MySQL,這是在數(shù)據(jù)庫完整性級別上強制執(zhí)行的——數(shù)據(jù)庫級別的鍵約束防止創(chuàng)建無法驗證的關系。
然而,如果你正在使用 SQLite 或支持 MyISAM 表的MySQL,這就不會強制參照完整性;因此,你可以偽造跨數(shù)據(jù)庫的外鍵。盡管 Django 并沒有正式支持這個設置。
contrib應用程序的行為
一些貢獻應用包括模型,一些應用依賴于其他應用。 由于跨數(shù)據(jù)庫關系是不可能的,因此這會對如何跨數(shù)據(jù)庫拆分這些模型產(chǎn)生一些限制:
- 在給定合適的路由器的情況下,?
contenttypes.ContentType?,?sessions.Session?和?sites.Site?中的每一個都可以存儲在任何數(shù)據(jù)庫中。 - ?
auth?模型 - ?User?,?Group?和?Permission?- 鏈接在一起并鏈接到?ContentType?,因此它們必須與?ContentType?存儲在同一個數(shù)據(jù)庫中。 - ?
admin?依賴于?auth?,所以它的模型必須和?auth?在同一個數(shù)據(jù)庫中。 - ?
flatpages?和?redirects?依賴于?sites?,所以他們的模型必須和?sites?在同一個數(shù)據(jù)庫中。
注意:如果要將內(nèi)容類型同步到多個數(shù)據(jù)庫,請注意它們的主鍵可能在數(shù)據(jù)庫之間不匹配。這可能導致數(shù)據(jù)損壞或數(shù)據(jù)丟失。
分享標題:創(chuàng)新互聯(lián)Django4.0教程:Django4.0多數(shù)據(jù)庫-多數(shù)據(jù)庫的局限性
網(wǎng)站鏈接:http://m.fisionsoft.com.cn/article/cocdjej.html


咨詢
建站咨詢
