Markus Trusk: mySQL/Perl: Frage zur Umsetzung...

Beitrag lesen

Hola,
Ich will eine Datenbankanwedung schreiben, bei der sich Benutzer mit Vorname, Nachname, Nickname, Email, ICQ usw registrieren können. (8 Kategorien, die man insgesamt eintragen kann)

Wenn man registriert ist, kann man Dinge eintragen (so eine Art Tauschbörse, damit jeder sehen kann, was man anzubieten hat). Insgesamt sind es hier 6 verschiedene Punkte, die man eintragen kann, bei denen jeder Benutzer mit einer Suche nach 4 Kriterien davon suchen können soll. (Also zB sortiert nach Punkt1,. sortiert nach Punkt2, usw).

Wie könnte ich das Problem am Besten angehen?
Ich hätte es mir so vorgestellt:

Bei jeder Registrierung wird eine neue Tabelle erstellt, die nach dem Nicknamen (der natürlich nur einmal vorkommt) benannt ist. Dort werden dann all diese Werte eingetragen.

Meine Fragen wären: Wieviele Tabellen kann/darf eine Datenbank erfassen/erzeugen?
wenn ich es so mache, wie oben beschrieben, wie kann ich mit Perl die verschiedenen Tabellennamen erfassen, oder soll ich vielleicht eine "Indextabelle" zusätzlich erstellen lassen, in der alle Tabellenamen gespeichert sind, und ich diese Werte dann nur auslesen muss? Ich kann zwar von einer Tabelle auslesen zB so:

my $auslesen = $dbh->prepare("SELECT * FROM tabellenname") or die "Cant auslesen : $!\n";
$auslesen->execute;
while (my($vorname,$nachname,$erstellungsdatum) = $auslesen->fetchrow_array)    {
print "Vorname:$vorname Nachname:$nachname Unixtimestamp:$erstellungsdatum\n";
}

aber wenn ich mir vorstelle, dass ich bei "tabellenname" eine Variable einsetze, und diese jeweils mit dem Wert des nächsten Tabellennamens in meiner "Indextabelle" belege, könnte ich mir vorstellen, dass die Prozedur nicht besonders effizient ist, vor allem wüsste ich nicht, wie ich die Ausgabe aplhabetisch sortiert ausgeben könnte, da zwischen den einzelnen Tabellen ja kein Bezug ist, zumindest so wie ich mir das vorstelle. Überhaupt werden sicher über 100 Leute registriert sein, also glaube ich kaum, dass dies die Lösung wäre, aber wie kann ich so etwas am Besten realisieren?

Markus Trusk.