मैं foo
एस और bar
एस और उनके बीच कई से अधिक संबंधों के साथ एक SQLite3 डेटाबेस स्थापित करने का प्रयास कर रहा हूं। यह मैं अब तक क्या मिल गया है है:SQLite कई से अधिक रिश्ते?
CREATE TABLE foo(
id INTEGER PRIMARY KEY NOT NULL,
foo_col INTEGER NOT NULL
);
CREATE TABLE bar(
id INTEGER PRIMARY KEY NOT NULL,
bar_col TEXT NOT NULL
);
CREATE TABLE foobar(
foo_id INTEGER,
bar_id INTEGER,
FOREIGN KEY(foo_id) REFERENCES foo(id) ON DELETE CASCADE,
FOREIGN KEY(bar_id) REFERENCES bar(id) ON DELETE CASCADE
);
CREATE INDEX fooindex ON foobar(foo_id);
CREATE INDEX tagindex ON foobar(tag_id);
... लेकिन यह काम करने लगता है। मैं foo
से एक पंक्ति हटा सकता हूं और यह foobar
को प्रभावित नहीं करता है। मैं क्या गलत कर रहा हूं?
तालिका foobar को शायद प्राथमिक कुंजी बाधा की आवश्यकता है (foo_id, bar_id)। लेकिन यह एक अलग मुद्दा है। –
@Catcall: मेरी पोस्ट पर टिप्पणी करने के लिए स्वतंत्र महसूस करें। – wes
ऐस का उत्तर, जो सीधे SQLite दस्तावेज़ से है, सटीक और पूर्ण है। लेकिन जैसा कि मैंने कहा, तालिका foobar भी 'प्राथमिक कुंजी (foo_id, bar_id)' की जरूरत है। –