1 - ईमानदारी को मुख्य कुंजी बाधा कहा जाता है जिसका उपयोग करके बनाए रखा जाता है। एक उचित परिदृश्य आप इन दो तालिकाओं करना हो सकता है:
Table Name: STATE_CODE
ID DESCRIPTION
=================
1 Alabama
2 Arkansas
...
50 Wyoming
Table Name: CUSTOMER
=====================
CUST_ID CUST_NAME CUST_STATE
100 AAA Company 1 --they are in Alabama!
200 ZZZ Company 50 --they are in Wyoming!
यह उत्तर देता है अपने प्रश्न # 2: राज्य कोड, नहीं पूरा नाम, इस उदाहरण में ग्राहक तालिका में चले जाते हैं।
एक ठेठ स्क्रिप्ट एक मौजूदा लेआउट पर संरचना इस तरह लागू करने के लिए इस तरह होगा:
--first, create the lookup table
CREATE TABLE STATE_CODE(
ID INTEGER NOT NULL
,DESCRIPTION VARCHAR(100) NOT NULL
,PRIMARY KEY(ID)
);
--now add a reference to the lookup table inside your existing table
--the REFERENCES part will **force** entries
--to have a matching entry in STATE_CODE
ALTER TABLE CUSTOMER ADD STATE_CODE_ID REFERENCES STATE_CODE(ID);
और यह जवाब देता है अपने प्रश्न # 1: यह "संदर्भ" आदेश एक विदेशी कुंजी बाधा पैदा करेगा कि होगा STATE_CODE तालिका में एक समान प्रविष्टि रखने के लिए CUSTOMER.STATE_CODE में सभी प्रविष्टियों को मजबूर करें।
INSERT INTO CUSTOMER(CUST_ID,CUST_NAME,CUST_STATE)
VALUES(9000,'Martians',74837483748);
तब वे एक त्रुटि संदेश मिलता है, और है कि दोषपूर्ण डेटा कभी नहीं दर्ज की गई जायेगा (जब तक, ज़ाहिर है, तुम सच में एक राज्य में एक कोड की क्या ज़रूरत थी: इस की स्थापना, अगर किसी को इस की कोशिश करने के लिए गए थे के बाद 74837483748 का)।
अद्भुत विस्तृत स्पष्टीकरण! धन्यवाद! –