2012-03-24 27 views
0

Ich habe 2 zwei Tabellen eingerichtet - Tabelle Benutzer-ID und Tabelle Daten in phpmyadmin. Die Benutzer-ID-Tabelle besteht aus einer einzelnen Spalten-ID und die Tabellendaten bestehen aus den folgenden Spalten: id|name|price. Ich habe einen Index in der Spalten-ID der Tabelle userid hinzugefügt, um auf die ID der Tabellendaten zu zeigen. Jetzt habe ich einen Benutzer, der bestimmte Auswahlen innerhalb einer Android-Anwendung trifft. Ich möchte diese Daten in die Tabellendaten einfügen. Ich weiß, dass ich jdbc benutzen muss und weiß, wie man Daten für Tabelle ohne irgendeinen Index einträgt. Aber ich bin verwirrt darüber, wie man es bei verwandten Tabellen tun kann. Die Benutzer-ID erhalten Sie unter diesem Link http://android-developers.blogspot.in/2011/03/identifying-app-installations.html. Würde mir bitte jemand sagen, wie man die Daten mit Java eingibt. (Die Verwirrung ist, wie die Benutzer-ID und die entsprechenden Daten eingeben).Abrufen von Daten aus einer relationalen Datenbank

+0

Wenn Sie sagen, dass Sie einen Index in der Spalte ID der Tabelle Benutzer-ID hinzugefügt haben zu Punkt zur ID der Tabellendaten, meinst du, dass 'data'.id' der Fremdschlüssel für' userid''id' ist? Wenn dem so ist, dann ist es nicht möglich, in "Daten" einzufügen, ohne einen entsprechenden Eintrag in "Benutzer-ID" zu haben. Oder habe ich deine Frage nicht verstanden? – Abhay

Antwort

1

Solange Sie die Benutzer-ID kennen, wenn Sie einen neuen Datensatz in die Datentabelle einfügen, ist alles, was Sie brauchen. Grundsätzlich werden Sie haben:

Statement stmt = conn.createStatement(); 
stmt.executeUpdate("INSERT INTO data (id, name, price) VALUES ('id from userid table', 'a name', 'a price')"); 

Offensichtlich sind die params nicht entkommen richtig (sie sollte wirklich sein) und es gibt keine Prüfung auf Fehler, aber das würde Ihnen den Start.

Dann zum Beispiel, wählen Sie alle zu einem bestimmten Benutzer-ID bezogenen Daten, würden Sie so etwas wie:

Statement stmt = conn.createStatement(); 
stmt.executeQuery("SELECT * FROM userid LEFT JOIN data WHERE userid.id = data.id"); 
+0

Ich dachte Indexierungs-Tabellen würden die Geschwindigkeit erhöhen und Wiederholungen reduzieren. Oder bin ich hier falsch. – user1092042

+0

@ user1092042 Absolut, aber was Sie gefragt haben, kann durch Hinzufügen eines Index für das ID-Feld in der Benutzertabelle behandelt werden, der Index muss nicht in einer separaten Tabelle gespeichert werden. – clexmond

+0

Aber die Daten müssen richtig identifiziert werden. Wenn ich viele Benutzer habe, dann muss ich wissen, welche Daten zu wem gehören. Sorry, wenn ich blöd bin, aber ich bin ziemlich neu. (Der Index wird in der Datentabelle als Fremdschlüssel gespeichert) – user1092042

Verwandte Themen