Foreign keys से 1:N रिलेशनशिप मॉडल करें

SQL में रिलेशनल डेटाबेस का परिचय

Timo Grossenbacher

Data Journalist

मौजूदा डेटाबेस मॉडल

SQL में रिलेशनल डेटाबेस का परिचय

अगला डेटाबेस मॉडल

SQL में रिलेशनल डेटाबेस का परिचय

Foreign keys से रिलेशनशिप लागू करना

  • एक foreign key (FK) किसी दूसरी टेबल की primary key (PK) की ओर इशारा करती है
  • FK का डोमेन PK के डोमेन के बराबर होना चाहिए
  • FK के हर मान का दूसरी टेबल की PK में मौजूद होना ज़रूरी है (FK constraint या "referential integrity")
  • FKs असली keys नहीं होते
SQL में रिलेशनल डेटाबेस का परिचय

एक क्वेरी

SELECT * FROM professors LIMIT 8;
 id |    firstname    |  lastname   | university_s..
  --+-----------------+-------------+-------------
  1 | Karl            | Aberer      | EPF
  2 | Reza Shokrollah | Abhari      | ETH
  3 | Georges         | Abou Jaoudé | EPF
  4 | Hugues          | Abriel      | UBE
  5 | Daniel          | Aebersold   | UBE
  6 | Marcelo         | Aebi        | ULA
  7 | Christoph       | Aebi        | UBE
  8 | Patrick         | Aebischer   | EPF
SELECT * FROM universities;
 id  |   university   | university_city
<hr />--+----------------+-----------------
 EPF | ETH Lausanne   | Lausanne
 ETH | ETH Zürich     | Zurich
 UBA | Uni Basel      | Basel
 UBE | Uni Bern       | Bern
 UFR | Uni Freiburg   | Fribourg
 UGE | Uni Genf       | Geneva
 ULA | Uni Lausanne   | Lausanne
 UNE | Uni Neuenburg  | Neuchâtel
 USG | Uni St. Gallen | Saint Gallen
 USI | USI Lugano     | Lugano
 UZH | Uni Zürich     | Zurich
SQL में रिलेशनल डेटाबेस का परिचय

Foreign keys निर्दिष्ट करना

CREATE TABLE manufacturers (
 name varchar(255) PRIMARY KEY);

INSERT INTO manufacturers 
VALUES ('Ford'), ('VW'), ('GM');

CREATE TABLE cars ( model varchar(255) PRIMARY KEY, manufacturer_name varchar(255) REFERENCES manufacturers (name)); INSERT INTO cars VALUES ('Ranger', 'Ford'), ('Beetle', 'VW');
-- त्रुटि फेंकता है!
INSERT INTO cars 
VALUES ('Tundra', 'Toyota');
SQL में रिलेशनल डेटाबेस का परिचय

मौजूदा टेबल्स के लिए foreign keys निर्दिष्ट करना

ALTER TABLE a 
ADD CONSTRAINT a_fkey FOREIGN KEY (b_id) REFERENCES b (id);
SQL में रिलेशनल डेटाबेस का परिचय

आइए इसे लागू करें!

SQL में रिलेशनल डेटाबेस का परिचय

Preparing Video For Download...