Schluessel erstellen/ISAM/Vergleich

Hallo zusammen,

ich bin gerade dabei ein Projekt zu bearbeiten und hab keine Ahnung
wie ich anfangen soll. Folgendes:
Ich habe eine Hauptdatenbank mit dem Inhalt A,B,C… und jeweils
Unterpunkten unter diesen z.B. a, aa, aaa…
Dann existiert noch eine andere Tabelle mit Eintraegen die auf die
Hauptdatenbank verweisen z.B. User1 --> A,B User2 --> A,C User3 -->
A,B…

Ziel des ganzen Projektes ist, dass die User miteinander verglichen
werden sollen, anhand der Daten auf die sie gelinkt sind. Also User1
und User3 matchen 100%.
Dabei soll jeder user mit jedem verglichen werden koennen, ohne eine
langdauernde Abfrage. Ich will die User anhand von Koordinaten auf
dem Bildschirm darstellen. Je besser sie zusammenpassen, desto naeher
sollen sie auch aneinander sein.

Wie kann ich effizient einen Schluessel erstellen? Wenn einige
hundert User in der Datenbank sind und einige hundert/tausende
Eintraege in der Hauptdatenbank?
Vielleicht muss ich auch die Struktur aendern?

Waere super wenn mir jemand helfen koennte und einen Denkanstoss
geben, wie ich sowas realisieren kann.

Gruss und Danke,
David

Hallo,

du musst dir darüber Sorgen machen, wenn du in die 100.000 User kommst.

Was DU vermeiden solltest:
User 2 --> A,C
sieht so aus als wolltest du zwei Attribute in ein Feld schreiben. Das ist böse.
User2 --> A
User2 --> C
so macht man das und dann braucht man sich auch wenig Sorgen zu machen, dass die Selects lahm werden.

Am Besten erstellst du erst mal ein ER-Diagramm. Und danach erst die Tabellen.

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Peter,

danke fuer deine Antwort! war natuerlich so gedacht wie dein
Vorschlag unten.
Die Sache ist nur, wenn ich nehmen wir mal an 1000 User habe. Muesste
ich alle 1000 mit den anderen 1000 vergleichen. Ist sozusagen eine n
zu n Beziehung.
Ich bin mir ueber die Realisierung noch nicht ganz im Klaren.

Ich denke da an sowas, dass ich den Usern eventuell irgendeinen
„Schluessel“ gebe. Je aehnlicher die Userprofile, desto aehnlicher
die „Schluessel“.

Das mit ISAM, Indizierung war vielleicht etwas missverstaendlich. Ich
dachte, dass waeren eventuell Wege an die Sache ranzugehen.

Die eigentlich Schwierigkeit fuer mich ist, dass ich keinen
Bezugspunkt habe zum Vergleichen. Ich moechte die User nicht mit
etwas wie „A“, „B“… vergleichen, sondern ihre Profile untereinander
um diese dann je nach Matchgenauigkeit in einem Koordinatensystem
darzustellen.
Muss ich dafuer einen Bezugspunkt haben fuer den Vergleich? Kann ich
dafuer die Menge der Haupdatenbank nehmen.

Bsp:
Ich vergleiche alle User mit einem Bezugspunkt Haupdatenbank
{A,B,C,D,E}
mit
User1 {A,B} --> bekomme einen Wert fuer Schluessel
user2 {A,C}

Aber wie vergleiche ich User1 und User2 dann?

Ich weiss es ist ein sehr komplexes, abstraktes Thema und ich hab
versucht es anschaulich dazustellen. Falls etwas nicht klar sein
sollte, bitte Nachfragen!

Vielen Dank,
David

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

ich hab nochmal darueber nachgedacht, wie ich das vielleicht am
Besten ausdruecken kann, damit es besser verstaendlich ist, was mein
Ziel mit diesen Eintrag ist:

Die Singleboersen duerften ja jedem mehr oder weniger ein Begriff
sein. Diese haben Userprofile. Was ich nun machen moechte ist:
Jeden User mit jedem user miteinander vergleichen und alle User in
einem Koordinatensystem darstellen. Die User, welche von dem
Userprofil besser zusammenpassen, sollen in dem Koordinatensystem
auch naeher beisammen sein.

Vielleicht noch kurz etwas zur Datenstruktur: Das Userprofil enthaelt
typische Attribute, wie Haarfarbe etc. aber auch benutzerspezifische
Eingaben.

Ich hab keine Ahnung wie ich das realisieren kann und waere fuer
jeden Denkanstoss dankbar.

Vielen Dank, Gruss,
David

Hallo,

also müsstest du für die Merkmalsausprägung einen Abstand definieren. Z.B. A - B - C - D Dadurch ist dann eine Metrik definiert und du kannst zwei Ausprägungen vergleichen. Etwas schwieriger wird es bei mehreren Dimensionen. Ist Ax - Bx näher als Cy - Cz.
Aber wenn das gemacht ist, kann man eine Abstandsfunktion erstellen und diese berechenen - Abstand(User1, User2) = Skalarer Wert.

Ob das Ganze dann aber so ein Hit wird, möchte ich bezweifeln: Gegensätze ziehen sich an. Wer möchte denn schon SICH haben (Ausser Narziss). Und in Singlebörsen schaut man doch nur nach was besserem als man sich selbst einstuft, oder?

Gruß

Peter

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

vielen Dank erstmal! Hoert sich schon mal sehr ineteressant an. In
wirklichkeit geht es nicht um eine Singleboerse, ich hab das nur als
Beispiel genommen, um das ganze anschaulich zu beschreiben. Es ist
eigentlich das gleiche Prinzip :wink:
Kannst du mir vielleicht weiterfuerhrende Literatur oder Stichworte
wonach ich suchen kann, etc. zu diesem Thema nennen? Waer fuer alles
dankbar! Hab zwar schon gegoogelt, aber dementsprechend nichts
gefunden. Wuesste auch kein Projekt, wo das so umgesetzt wurde. Denn
das was du mir geschrieben hast ist hlft mir schonmal viel weiter,
aber an die praktische Umsetzung kann ich hierbei noch nicht denken.

Vielen Dank,
David

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]