Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

आप डेटाबेस में विरासत को प्रभावी ढंग से कैसे मॉडल करते हैं?

डेटाबेस में इनहेरिटेंस को मॉडल करने के कई तरीके हैं। आप जो चुनते हैं वह आपकी आवश्यकताओं पर निर्भर करता है। यहां कुछ विकल्प दिए गए हैं:

तालिका-प्रति-प्रकार (टीपीटी)

प्रत्येक वर्ग की अपनी तालिका होती है। बेस क्लास में सभी बेस क्लास तत्व होते हैं, और इससे प्राप्त होने वाले प्रत्येक वर्ग की अपनी तालिका होती है, जिसमें प्राथमिक कुंजी होती है जो बेस क्लास टेबल की एक विदेशी कुंजी भी होती है; व्युत्पन्न तालिका के वर्ग में केवल विभिन्न तत्व होते हैं।

तो उदाहरण के लिए:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Linux से SQL सर्वर Azure / 2022 डेटाबेस लेज़र टेबल्स।

  2. सम्मिलित करें आदेश निष्पादित करें और Sql में सम्मिलित आईडी लौटाएं

  3. SQL सर्वर में एक विदेशी कुंजी कैसे बनाएं (T-SQL उदाहरण)

  4. एएसपीनेट में डेटाबेस से छवि पुनर्प्राप्त करें

  5. एसक्यूएल क्वेरी दो तालिकाओं के बीच अंतर वापस करने के लिए