आप एक विरासत रीडऑनली डेटाबेस के बारे में बात कर रहे हैं, शायद आप बिना किसी बहु-कॉलम पीके के बाहरी स्कीमा (विचार) बना सकते हैं। उदाहरण के लिए आप फ़ील्ड कुंजियों को जोड़ सकते हैं। यहाँ और उदाहरण:
उदाहरण के लिए:
टेबल्स:
create table A (
a1 int not null,
a2 int not null,
t1 varchar(100),
primary key (a1, a2)
)
create table B (
b1 int not null,
b2 int not null,
a1 int not null,
a2 int not null,
t1 varchar(100),
primary key (b1, b2),
constraint b_2_a foreign key (a1,a2)
references A (a1, a2)
)
django द्वारा पढ़ी जाने वाली बाहरी स्कीमा:
Create view vA as
select
a1* 1000000 + a2 as a, A.*
from A
Create view vB as
select
b1* 1000000 + b2 as b,
a1* 1000000 + a2 as a, B.*
from B
django मॉडल:
class A(models.Model):
a = models.IntegerField( primary_key=True )
a1 = ...
class Meta(CommonInfo.Meta):
db_table = 'vA'
class B(models.Model):
b = models.IntegerField( primary_key=True )
b1 = ...
a = models.ForeignKey( A )
a1 = ...
class Meta(CommonInfo.Meta):
db_table = 'vB'
इंडेक्स के साथ काम करने . में सक्षम होने के लिए आप varchar कुंजियों को बनाने के लिए तकनीक को परिष्कृत कर सकते हैं . मैं और नमूने नहीं लिखता क्योंकि मुझे नहीं पता कि आपका डेटाबेस ब्रांड क्या है।
अधिक जानकारी:
Do Django मॉडल बहु-स्तंभ प्राथमिक कुंजियों का समर्थन करते हैं?