2014-12-28 10 views
5

में विदेशी कुंजी कैसे बनाएं, मैं कैसंड्रा में एक SQL डेटाबेस को दोहराने की कोशिश कर रहा हूं, लेकिन, मुझे टेबल बनाने में कोई समस्या नहीं थी, लेकिन मुझे पता चला कि मुझे समझने में कोई उदाहरण नहीं मिल रहा है जो दिखाता है कि मैं कैसे कर सकता हूं कैसंद्रा में विदेशी कुंजी बनाएं।कैसंड्रा सीक्यूएल

तो, अगर मैं एसक्यूएल में इस है:

CREATE TABLE COOP_USUARIO (
CI     VARCHAR2 (13 BYTE) NOT NULL , 
CUENTA    VARCHAR2 (20 BYTE) NOT NULL , 
NOMBRE    VARCHAR2 (50 BYTE) NOT NULL , 
EMAIL    VARCHAR2 (255 BYTE) NOT NULL , 
DIRECCION   VARCHAR2 (255 BYTE) , 
CIUDAD    NUMBER NOT NULL , 
TELEFONO    VARCHAR2 (10 BYTE) NOT NULL , 
TIPO_PERSONA   NUMBER (1) NOT NULL , 
); 
CREATE UNIQUE INDEX COOP_USUARIO_PK ON COOP_USUARIO(
CI ASC 
); 
ALTER TABLE COOP_USUARIO ADD CONSTRAINT COOP_USUARIO_PK PRIMARY KEY (CI) ; 

CREATE TABLE COOP_CIUDADES 
(
ID  NUMBER NOT NULL , 
NOMBRE VARCHAR2 (25 BYTE) NOT NULL , 
PROVINCIA NUMBER NOT NULL 
) ; 
CREATE UNIQUE INDEX COOP_CIUDADES_PK ON COOP_CIUDADES 
(
    ID ASC 
); 
ALTER TABLE COOP_CIUDADES ADD CONSTRAINT COOP_CIUDADES_PK PRIMARY KEY (ID) ; 


ALTER TABLE COOP_USUARIO ADD CONSTRAINT COOP_USUARIO_CIUDADES_FK FOREIGN KEY (CIUDAD) REFERENCES COOP_CIUDADES (ID) ; 

ही उद्देश्य के लिए Cassndra CQL कोड क्या है?

+2

का उपयोग कर प्रतिबद्ध नहीं है आप एसक्यूएल में सोच रहे हैं और noSQL में अनुवाद कर रहे हैं। नोएसक्यूएल मास्टर करने के लिए, noSQL में सोचें। यही है, प्रतिमान अलग हैं, और एसक्यूएल पैटर्न को एसएसएलक्यूएल दुनिया में मजबूर करने से केवल निराशा होती है। –

+2

मेरे पास पहले से ही मेरा जवाब था, अगर आप केवल पहले से ही स्वीकृत उत्तर के साथ टिप्पणियां पोस्ट करते हैं और नई तकनीकों को सीखने वाले लोगों के उन प्रश्नों को रेटिंग करते हैं तो आप अपनी राय को बचा सकते हैं। धन्यवाद – Sascuash

+1

ठीक है। खैर, बस आपके संक्रमण में nosql डेटाबेस में आपकी मदद करने की कोशिश कर रहा है। और भले ही आपका जवाब हो, ध्यान रखें कि SO उन लोगों के लिए जानकारी को संरक्षित करने के बारे में है जो साथ आते हैं, और टिप्पणियां भी उनकी मदद कर सकती हैं। –

उत्तर

16

सरल उत्तर है: एक ही उद्देश्य के लिए कोई सीक्यूएल कोड नहीं है।

सीक्यूएल में विदेशी कुंजी या टेबल के बीच बाधाओं की किसी भी अवधारणा की अवधारणा नहीं है, जिससे आप तालिकाओं के बीच जुड़ नहीं सकते हैं।

यदि आपको तालिकाओं के बीच बाधा की आवश्यकता है तो आपको कोड में इसे संभालना होगा।

+0

तो, केवल एक चीज जो मैं कर सकता हूं उन्हें कोड के माध्यम से नियंत्रित किया जाता है? क्या मैं कुछ ऐसा करने के लिए डेटाबेस तैयार नहीं कर सकता? (इस बार उत्सुकता से) – Sascuash

+2

@ सस्कुआश कैसंद्रा और अन्य गैर-रिलेशनल डेटाबेस में इस अवधारणा की तरह कुछ भी नहीं है, क्योंकि आपको अपने प्रश्नों के अनुरूप अपनी तालिकाओं को मॉडलिंग करना चाहिए (जैसा कि, प्रत्येक अपेक्षित क्वेरी के लिए एक तालिका)। उस प्रकार के दृष्टिकोण के साथ, विदेशी कुंजी की कोई आवश्यकता नहीं है। – Aaron

+0

जानकारी के लिए धन्यवाद;) – Sascuash

0

इस थोड़ा भ्रामक लगता है

"प्रत्येक की उम्मीद क्वेरी के लिए एक टेबल)। दृष्टिकोण के प्रकार के साथ, वहाँ विदेशी कुंजी के लिए कोई जरूरत नहीं है"। कैसंद्रा में पूरी तरह से denormalizing के साथ स्थिरता जोखिम हैं ... निरंतरता मुद्दों के खिलाफ बीमा करने का सबसे अच्छा तरीका बैच में बयान में कर रहा है या लागू बैच कमांड

संबंधित मुद्दे