Hallo zusammen ...
Es gibt Bilder und Schlüsselworte. Jedes Bild kann beliebig viele Schlüsselworte haben und jedes Schlüsselwort kann bei beliebig vielen Bildern verwendet werden. Diese m:n Beziehung habe ich in folgenden drei Tabellen untergebracht:
table: picture
fields: id
table: keyword
fields: id
table: pic_key
fields: pic_id, key_id
Nun gibt der Benutzer Schlüsselworte an und die DB soll alle picture.id liefern, die alle Schlüsselworte benutzt.
picture
---------
pic1
pic2
pic3
keyword
------------
keyA
keyB
pic_key
-----------
pic1 keyA
pic2 keyA
pic2 keyB
pic3 keyB
Wenn der Benutzer bei o.g. Einträgen also die Schlüsselworte keyA und keyB eingibt, erwarte ich, dass ich als picture.id die pic2 geliefert bekomme. Und nur diese.
Irgendwie habe ich da einen Knoten und weiß nicht so recht, wie die Abfrage aussehen muss. Über eine temporäre Tabelle oder eine interne Liste mit den picture.id habe ich auch schon nachgedacht. Ein zusätzliches Problem ist allerdings, dass ich auch ein Auge auf die Performance haben muss, da die DB für Massendaten (> 100.000 Bilder) ausgelegt ist. Mir fehlt schlicht eine Idee wie die Abfrage aussehen soll. Wenn da jemand einen Tipp hat, wäre ich sehr dankbar.
Es gibt Bilder und Schlüsselworte. Jedes Bild kann beliebig viele Schlüsselworte haben und jedes Schlüsselwort kann bei beliebig vielen Bildern verwendet werden. Diese m:n Beziehung habe ich in folgenden drei Tabellen untergebracht:
table: picture
fields: id
table: keyword
fields: id
table: pic_key
fields: pic_id, key_id
Nun gibt der Benutzer Schlüsselworte an und die DB soll alle picture.id liefern, die alle Schlüsselworte benutzt.
picture
---------
pic1
pic2
pic3
keyword
------------
keyA
keyB
pic_key
-----------
pic1 keyA
pic2 keyA
pic2 keyB
pic3 keyB
Wenn der Benutzer bei o.g. Einträgen also die Schlüsselworte keyA und keyB eingibt, erwarte ich, dass ich als picture.id die pic2 geliefert bekomme. Und nur diese.
Irgendwie habe ich da einen Knoten und weiß nicht so recht, wie die Abfrage aussehen muss. Über eine temporäre Tabelle oder eine interne Liste mit den picture.id habe ich auch schon nachgedacht. Ein zusätzliches Problem ist allerdings, dass ich auch ein Auge auf die Performance haben muss, da die DB für Massendaten (> 100.000 Bilder) ausgelegt ist. Mir fehlt schlicht eine Idee wie die Abfrage aussehen soll. Wenn da jemand einen Tipp hat, wäre ich sehr dankbar.