खोज…


प्रति पदानुक्रम तालिका

यह दृष्टिकोण सभी वंशानुक्रम संरचना का प्रतिनिधित्व करने के लिए डेटाबेस पर एक तालिका उत्पन्न करेगा।

उदाहरण:

public abstract class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime BirthDate { get; set; }
}

public class Employee : Person
{
    public DateTime AdmissionDate { get; set; }
    public string JobDescription { get; set; }
}

public class Customer : Person
{
    public DateTime LastPurchaseDate { get; set; }
    public int TotalVisits { get; set; }
}

// On DbContext
public DbSet<Person> People { get; set; }
public DbSet<Employee> Employees { get; set; }
public DbSet<Customer> Customers { get; set; }

उत्पन्न तालिका इस प्रकार होगी:

तालिका: लोग फ़ील्ड्स: आईडी नाम जन्मतिथि छूट प्रवेशक जॉबडेसक्रिप्शन LastPurchaseDate कुल जमा

जहाँ 'डिस्क्रिमिनेटर' वंशानुक्रम पर उपवर्ग का नाम रखेगा और 'एडमिशनडेट', 'जॉबडेस्क्रिप्शन', 'लास्टपर्चेसडे', 'टोटलवीसिट्स' अशक्त हैं।

लाभ

  • बेहतर प्रदर्शन के बाद से किसी भी जॉइन की आवश्यकता नहीं है, हालांकि कई कॉलम के लिए डेटाबेस को कई पेजिंग ऑपरेशन की आवश्यकता हो सकती है।
  • उपयोग करने और बनाने के लिए सरल
  • अधिक उपवर्ग और फ़ील्ड जोड़ना आसान है

नुकसान

प्रति प्रकार तालिका

यह एप्रोच डेटाबेस पर सभी विरासत संरचना का प्रतिनिधित्व करने के लिए (n + 1) टेबल उत्पन्न करेगा जहां n उपवर्गों की संख्या है।

कैसे:

public abstract class Person
{
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime BirthDate { get; set; }
}

[Table("Employees")]
public class Employee : Person
{
    public DateTime AdmissionDate { get; set; }
    public string JobDescription { get; set; }
}

[Table("Customers")]
public class Customer : Person
{
    public DateTime LastPurchaseDate { get; set; }
    public int TotalVisits { get; set; }
}

// On DbContext
public DbSet<Person> People { get; set; }
public DbSet<Employee> Employees { get; set; }
public DbSet<Customer> Customers { get; set; }

उत्पन्न तालिका इस प्रकार होगी:

तालिका: लोग फ़ील्ड्स: आईडी नाम जन्मतिथि

तालिका: कर्मचारी क्षेत्र: व्यक्ति प्रवेश जॉबड्रेसक्रिप्शन

तालिका: ग्राहक: क्षेत्र: व्यक्ति अंतिम LastPurchaseDate TotalVisits

जहां सभी तालिकाओं पर 'व्यक्तिवाद' एक प्राथमिक कुंजी और People.Id के लिए एक बाधा होगी

लाभ

  • सामान्यीकृत टेबल
  • कॉलम और उपवर्गों को जोड़ना आसान है
  • कोई अशक्त स्तंभ नहीं

नुकसान

  • डेटा को पुनः प्राप्त करने के लिए सम्मिलित होना आवश्यक है
  • उपवर्ग इंजेक्शन अधिक महंगा है


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow