- Forum-Beiträge: 1.727
12.02.2010, 02:16:57 via Website
12.02.2010 02:16:57 via Website
bin wahrlich kein Experte in Sachen Datenbanken, daher mal folgende Frage:
Ich habe eine 1:N Relation, im Java Code hat ein Objekt viele Referenzen auf Zeitpläne (repeat).
Nun sind diese Repeats alle recht trivial, was momentan auch mein Problem ist, da Ich nicht garantieren kann das es diesen Repeat nicht schon mal in der gleich Form bereits in der Tabelle repeat gibt. Füge Ich nun einen repeat in die Tabelle ein müsste Ich für meine relation den primary key des repeat kennen.
Einen Insert über SQLDatabase#insert liefert mir doch leider nur die ROW ID was mir nicht weiterhilft, auch einen Trigger habe Ich schon versucht zu schreiben, doch auch hier habe Ich das Problem das Ich bei dieser Relation immernoch nicht den PRIMARY KEY in der schedule_repeat_relation kenne.
Hier mein trigger versuch der leider das Problem nicht löst:
2 BEGIN
3
4 INSERT INTO schedule_repeat_relation (scheduleid, repeatid) values (new.scheduleid,new._id);
5 END
Also, man kann das Problem grob darauf zusammen-stutzen das Ich nicht weiß wie Ich an den Primary Key eines Objektes kommen kann ohne das der Eintrag in der Tabelle eindeutig ist.
Ich brauche also Foreign Keys, was SQLite leider nicht unterstützt. Die einzige lösung die mir momentan einfällt ein Dummy Feld in der Tabelle repeat einzufügen welches Ich z.b mit den Nanosekunden fülle, und mir diese merke um danach einen entsprechenden Primary key ermitteln zu können der auch wirklich zu dem Eintrag gehört.
Gibt es Ideen hierzu ? Oder stehe Ich total auf dem Holzweg ?
Danke für Anregungen,
Mac
Windmate HD, See you @ IO 14 , Worked on Wundercar, Glass V3, LG G Watch, Moto 360, Android TV
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.