Hallo Miteinander
Wir suchen eine Lösung für folgende Problemstellung. Falls Du also sowas bereits realisiert hast oder weisst, wie man dies am besten löst, sind wir über jede Unterstützung dankbar.
Da der Rest der Website, wo dies integriert wird, in PHP und MySQL programmiert wurde, würden wir eine Lösung mit MySQL bevorzugen. Wenn du sowas aber mit einer anderen Datenbank realisieren würdest, sind Vorschläge auch willkommen. Wir müssen einfach mit Perl und PHP Scripts auf die Datenbank zugreifen können.
Wir haben folgende Situation (Äpfel werden nur als Beispiel verwendet!):
Es gibt beliebig viele Äpfel, wobei keiner gleich ist wie der andere, jeder hat seine individuellen Eigenschaften. Wenn wir nun ein spezielles Programm mit den Eigenschaften von zwei Äpfeln füttern, gibt und dieses einen Übereinstimmungswert zwischen 0% und 100% zurück, was uns zeigt, wie ähnlich die beiden Äpfel sind.
Die Äpfel verändern sich nie. Also immer wenn ich die gleichen zwei Äpfel vergleiche, kommt auch dasselbe Ergebnis zurück. Für weitere Abfragen möchten wir nun die Resultate in einer Datenbank speichern können.
In dieser Datenbank wollen wir dann beliebige Abfragen machen können wie z.B.:
A) Zeige mir die Äpfel mit der grössten Übereinstimmung, dabei sollen aber nur rote Äpfel berücksichtigt werden
B) Zeige mir die Äpfel mit der grössten Übereinstimmung, wobei nur Äpfel berücksichtigt werden sollen, deren Durchmesser grösser als X ist.
C) Zeige mir die Äpfel mit der grössten Übereinstimmung, wobei alle Äpfel berücksichtigt werden können.
etc. dies ist nur ein kleiner Auszug der möglichen Abfragen, die wir nachher machen wollen.
Natürlich könnte ich in MySQL eine ganz einfache Tabelle machen:
ApfelID1 ApfelID2 Relevanz
34 523 68%
8739 879776 57%
593 4793 98%
etc.
also ich vergleiche einfach jeden Apfel mit jedem und speichere das Ergebnis in dieser Tabelle. Bei 100 verschiedenen Äpfeln wäre das sicherlich auch noch kein Problem, dann hätten wir in der Tabelle gerade mal 4950 Einträge und alles würde wunderbar funktionieren.
Wenn wir nun aber über 1 Million verschiedene Äpfel haben wären das 4'999'999'500'000 Einträge (wenn ich das jetzt richtig gerechnet habe), wo MySQL mit einer Tabelle wohl an seine Grenzen stossen würde.
Man müsste wohl sowas wie eine Matchquality-Matrix-DB aufbauen. Habt ihr gute Lösungsvorschläge für diese Problemstellung?
Wir suchen eine Lösung für folgende Problemstellung. Falls Du also sowas bereits realisiert hast oder weisst, wie man dies am besten löst, sind wir über jede Unterstützung dankbar.
Da der Rest der Website, wo dies integriert wird, in PHP und MySQL programmiert wurde, würden wir eine Lösung mit MySQL bevorzugen. Wenn du sowas aber mit einer anderen Datenbank realisieren würdest, sind Vorschläge auch willkommen. Wir müssen einfach mit Perl und PHP Scripts auf die Datenbank zugreifen können.
Wir haben folgende Situation (Äpfel werden nur als Beispiel verwendet!):
Es gibt beliebig viele Äpfel, wobei keiner gleich ist wie der andere, jeder hat seine individuellen Eigenschaften. Wenn wir nun ein spezielles Programm mit den Eigenschaften von zwei Äpfeln füttern, gibt und dieses einen Übereinstimmungswert zwischen 0% und 100% zurück, was uns zeigt, wie ähnlich die beiden Äpfel sind.
Die Äpfel verändern sich nie. Also immer wenn ich die gleichen zwei Äpfel vergleiche, kommt auch dasselbe Ergebnis zurück. Für weitere Abfragen möchten wir nun die Resultate in einer Datenbank speichern können.
In dieser Datenbank wollen wir dann beliebige Abfragen machen können wie z.B.:
A) Zeige mir die Äpfel mit der grössten Übereinstimmung, dabei sollen aber nur rote Äpfel berücksichtigt werden
B) Zeige mir die Äpfel mit der grössten Übereinstimmung, wobei nur Äpfel berücksichtigt werden sollen, deren Durchmesser grösser als X ist.
C) Zeige mir die Äpfel mit der grössten Übereinstimmung, wobei alle Äpfel berücksichtigt werden können.
etc. dies ist nur ein kleiner Auszug der möglichen Abfragen, die wir nachher machen wollen.
Natürlich könnte ich in MySQL eine ganz einfache Tabelle machen:
ApfelID1 ApfelID2 Relevanz
34 523 68%
8739 879776 57%
593 4793 98%
etc.
also ich vergleiche einfach jeden Apfel mit jedem und speichere das Ergebnis in dieser Tabelle. Bei 100 verschiedenen Äpfeln wäre das sicherlich auch noch kein Problem, dann hätten wir in der Tabelle gerade mal 4950 Einträge und alles würde wunderbar funktionieren.
Wenn wir nun aber über 1 Million verschiedene Äpfel haben wären das 4'999'999'500'000 Einträge (wenn ich das jetzt richtig gerechnet habe), wo MySQL mit einer Tabelle wohl an seine Grenzen stossen würde.
Man müsste wohl sowas wie eine Matchquality-Matrix-DB aufbauen. Habt ihr gute Lösungsvorschläge für diese Problemstellung?
Kommentar