डेटाबेस में इनहेरिटेंस को मॉडल करने के कई तरीके हैं। आप जो चुनते हैं वह आपकी आवश्यकताओं पर निर्भर करता है। यहां कुछ विकल्प दिए गए हैं:
तालिका-प्रति-प्रकार (टीपीटी)
प्रत्येक वर्ग की अपनी तालिका होती है। बेस क्लास में सभी बेस क्लास तत्व होते हैं, और इससे प्राप्त होने वाले प्रत्येक वर्ग की अपनी तालिका होती है, जिसमें प्राथमिक कुंजी होती है जो बेस क्लास टेबल की एक विदेशी कुंजी भी होती है; व्युत्पन्न तालिका के वर्ग में केवल विभिन्न तत्व होते हैं।
तो उदाहरण के लिए:
class Person {
public int ID;
public string FirstName;
public string LastName;
}
class Employee : Person {
public DateTime StartDate;
}
इस तरह की तालिकाओं में परिणाम होगा:
table Person
------------
int id (PK)
string firstname
string lastname
table Employee
--------------
int id (PK, FK)
datetime startdate
तालिका-प्रति-पदानुक्रम (TPH)
एक एकल तालिका है जो सभी वंशानुक्रम पदानुक्रम का प्रतिनिधित्व करती है, जिसका अर्थ है कि कई स्तंभ शायद विरल होंगे। एक विभेदक स्तंभ जोड़ा जाता है जो सिस्टम को बताता है कि यह किस प्रकार की पंक्ति है।
उपरोक्त कक्षाओं को देखते हुए, आप इस तालिका के साथ समाप्त होते हैं:
table Person
------------
int id (PK)
int rowtype (0 = "Person", 1 = "Employee")
string firstname
string lastname
datetime startdate
पंक्ति प्रकार 0 (व्यक्ति) वाली किसी भी पंक्ति के लिए, प्रारंभ तिथि हमेशा शून्य होगी।
टेबल-प्रति-कंक्रीट (टीपीसी)
प्रत्येक वर्ग की अपनी पूरी तरह से बनाई गई तालिका होती है, जिसमें किसी अन्य तालिका का कोई संदर्भ नहीं होता है।
उपरोक्त कक्षाओं को देखते हुए, आप इन तालिकाओं के साथ समाप्त होते हैं:
table Person
------------
int id (PK)
string firstname
string lastname
table Employee
--------------
int id (PK)
string firstname
string lastname
datetime startdate