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

अनेक से अनेक संबंधों को मॉडल करने का सबसे अच्छा तरीका क्या है

एक उचित मॉडल जो संदर्भात्मक अखंडता को लागू करते समय आपकी जरूरत की हर चीज की अनुमति देता है, वह इस तरह दिख सकता है:

CREATE TABLE contact (
  contact_id serial PRIMARY KEY
, name text
, phone text
, ...
);

CREATE TABLE product (
  product_id serial PRIMARY KEY
, ...
);

CREATE TABLE product_role (
  role_id int PRIMARY KEY
, role text UNIQUE
);

CREATE TABLE product_contact (
  product_id int REFERENCES product
, contact_id int REFERENCES contact
, role_id    int REFERENCES product_role
, PRIMARY KEY (product_id, contact_id, role_id)
);

अगर एक ही संपर्क कभी भी एक ही उत्पाद के लिए एक से अधिक भूमिकाओं में काम नहीं कर सकता है, तो PK में भूमिका शामिल न करें:

, PRIMARY KEY (product_id, contact_id)

यह केवल product_role . में एक पंक्ति जोड़ने की अनुमति देता है अनुमति देने और अतिरिक्त प्रकार के संपर्क करने के लिए।

यदि अलग-अलग भूमिकाओं से भरा केवल एक हाथ है, तो डेटा प्रकार "char" role_id . के लिए सुविधाजनक हो सकता है ।

मूल बातें:



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में किसी दिनांक से दिनों को घटाएं

  2. धीमी गति से चलने वाली पोस्टग्रेज क्वेरी

  3. हाइबरनेट + पोस्टग्रेएसक्यूएल:संबंध मौजूद नहीं है - एसक्यूएल त्रुटि:0, एसक्यूएलस्टेट:42P01

  4. डेटाबेस के भीतर केवल एक तालिका से सम्मिलित विवरण प्राप्त करने के लिए pg_dump का उपयोग करना

  5. पोस्टग्रेज/हाइबरनेट ऑपरेटर मौजूद नहीं है:टेक्स्ट =बाइटिया