Per stabilire una relazione tra due tabelle, è possibile utilizzare Foreign keys. Una chiave esterna è un campo in una tabella relazionale che corrisponde a Candidate Key di un'altra tabella.
Ad esempio, supponiamo di avere due tabelle, una tabella CUSTOMER che include tutti i dati dei clienti e una tabella ORDINE che include tutti gli ordini dei clienti. L'intenzione qui è che tutti gli ordini devono essere associati a un cliente che è già nella tabella CUSTOMER. Per fare ciò, inseriremo una chiave esterna nella tabella ORDER e lo faremo in relazione alla chiave primaria della tabella CUSTOMER.
In SQLite Foreign Key Constraints possono essere aggiunti in modo seguente ::
modifica :: è possibile progettare item_order tavolo come ::
CREATE TABLE customer(
id INTEGER,
firstName TEXT,
middleName TEXT,
lastName TEXT,
address TEXT,
contactNum TEXT
);
CREATE TABLE item(
id INTEGER,
name TEXT,
description TEXT
);
CREATE TABLE order(
id INTEGER,
customerID INTEGER,
date TEXT,
FOREIGN KEY(customerId) REFERENCES customer(id)
);
CREATE TABLE item_order(
id INTEGER,
orderID INTEGER,
itemId INTEGER,
quantity INTEGER,
FOREIGN KEY(orderId) REFERENCES order(Id),
FOREIGN KEY(itemId) REFERENCES item(Id)
);
Dopo questo passaggio, come è possibile inserire una tabella di ordini articoli. Perché molti clienti hanno molti ordini. Per inserire l'ordine, come posso raggiungere la tabella degli ordini. – user1417278
in normalmente ho usato il codice qui sotto senza alcuna relazione. vuoto insertkisi privato (nome String, String e-mail, String pword) { \t \t \t \t \t SQLiteDatabase db = vnesne.getWritableDatabase(); \t ContentValues cv = new ContentValues (); \t \t \t \t cv.put (Veritabani.colName, nome); \t \t \t \t cv.put (Veritabani.colAge, email); \t \t \t \t cv.put (Veritabani.colDept, pword); \t \t \t \t db.insert ("kisi", null, cv); \t \t \t \t db.vicino(); \t \t \t} – user1417278
@ user1417278 vedere la modifica, il codice che è stato utilizzato per inserire valori senza alcuna relazione può essere utilizzato anche ora fino a quando non si sta violando i vincoli di chiave esterna. – Eight