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

विदेशी कुंजी बाधाओं के लिए बहुरूपता

यहाँ वह पैटर्न है जिसका मैं उपयोग कर रहा हूँ।

CREATE TABLE room (
    room_id serial primary key,
    room_type VARCHAR not null,

    CHECK CONSTRAINT room_type in ("standard_room","family_room"),
    UNIQUE (room_id, room_type)
);

CREATE_TABLE standard_room (
    room_id integer primary key,
    room_type VARCHAR not null default "standard_room",

    FOREIGN KEY (room_id, room_type) REFERENCES room (room_id, room_type),
    CHECK CONSTRAINT room_type  = "standard_room"
);
CREATE_TABLE family_room (
    room_id integer primary key,
    room_type VARCHAR not null default "family_room",

    FOREIGN KEY (room_id, room_type) REFERENCES room (room_id, room_type),
    CHECK CONSTRAINT room_type  = "family_room"
);

यानी, सुपर-क्लास पर 'उपवर्ग' बिंदु, एक प्रकार के डिक्रिमिनेटर कॉलम के माध्यम से (जैसे कि बेस क्लास की ओर इशारा किया गया सही प्रकार का है, और सुपर क्लास की प्राथमिक कुंजी चाइल्ड क्लास के समान है) ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. केवल SQL का उपयोग करके पूर्व-अद्यतन स्तंभ मान लौटाएं

  2. sql - श्रेणी के अनुसार समूह बिना मूल्यों के श्रेणियों को शामिल करने के लिए

  3. एकाधिक पंक्तियों को सम्मिलित करते समय डुप्लिकेट के साथ क्या होता है?

  4. PostgreSQL:सिक्स नॉट-सो-ईज़ी पीस

  5. एक पोस्टग्रेज समानता क्वेरी का अनुकूलन (pg_trgm + gin अनुक्रमणिका)