MySQL: 1:n Relation über 3 Tabellen durchsuchen

Julian-w

Mitglied
Hallo,

ich arbeite zur Zeit an meiner Teile/Objekte Datenbank. Dabei wird jedes Objekt einer Gruppe zugeordnet. Zusätzlich erhält noch jedes Objekt verschiedene Eigenschaften vom Typ INT oder STRING.

Die Tabelle könnte z.B. so aussehen:

Code:
Tabelle "object"
id | name | group
1  | LED1 | 3
2  | LED2 | 3
3  | LED3 | 3

Tabelle "eigenschaft_INT"
id | object | eigenschaft | value
1  | 1      | 1           | 31
2  | 2      | 1           | 31
3  | 3      | 1           | 29
4  | 3      | 3           | 124

Tabelle "eigenschaft_STRING"
id | object | eigenschaft | value
1  | 1      | 2           | "ROT"
2  | 2      | 2           | "GRUEN"
3  | 3      | 2           | "ROT"

Das ganze dürfte selbsterklärend sein ;)
Bei den "Eigenschaften-Tabellen" ordnet die Spalte object die Eigenschaften einem Objekt zu. Die Spalte "eigenschaft" enthält eine Zahl die beschreibt was für eine Eigenschaft das ist und die Spalte "value" enthält den Wert der Eigenschaft.

Nun müsste ich das ganze durchsuchen können, nur leider weiß ich nicht wie ich das mache. z.B. soll folgender Suchstring möglich sein: "Finde alle Objekte in der Gruppe 3, deren Eigenschaft 1 größer 30 ist UND Eigenschaft 2 gleich "ROT" ist".
Als Ergebnis dürfte nur LED1. Bei einer ODER statt UND Verknüpfung müsste LED1, LED2 und LED3 als Ergebnis kommen.

Das ganze kann natürlich noch größer werden mit UND oder ODER-Verknüpfungen. Die Tabelle String wird nur auf Gleichheit geprüft, die Tabelle mit den INTs auf =, < und >.

Könnt ihr mir Tipps geben wie ich das am besten mache? Leider bin ich etwas planlos wie ich das mit joins (?) anstellen kann...

Viele Grüße
Julian
 
Zurück