Peer: Kundenverwaltung Ordnerstukturen

Ahh.. es geht wieder :)

Hallo Leute,

ich habe eine Kundenverwaltung programmiert mit der ca. 2500 Kunden verwaltet werden. Das ganze läuft über eine MySql-Datenbank.

Für diese Kunden wird der Schriftverkehr, Abrechnungen, SMS-Nachrichten, Mails etc. archiviert. Meine Frage geht jetzt um die Struktur.

Meine erster Impuls war, dass ich pro Kunde einen Ordner anlege, der die Unterordner Post, Abrechnungen, Sms, Mails etc. hat, in denen dann die jeweiligen Korrespondenzen abgelegt und archiviert werden.
Das ganze verursacht jedoch eine extreme Ordnersturkur (2500 Kd. x 4 Ordner).

Nun kam die Überlegung auf, ob es da vielleicht sinnvoller ist, nur die 4 Ordner anlzulegen und die Rechnungen aller Kunden in einen Ordner zu speichern und die Mails aller Kunden in einen anderen Ordner u.s.w.
Die Dateien müssen dann natürlich mit der jeweiligen Kunden_id versehen werden, um sie letztlich zuordnen zu können.

Vielleicht hat je einer von Euch schon Erfahrungen damit gesammelt bzw. hat vielleicht noch eine viel sinnvollere Idee, wie man das ganze übersichtlich strukturieren kann bzw. was wohl am schlausten wäre.

Peer

  1. Hi!

    Nun kam die Überlegung auf, ob es da vielleicht sinnvoller ist, nur die 4 Ordner anlzulegen und die Rechnungen aller Kunden in einen Ordner zu speichern und die Mails aller Kunden in einen anderen Ordner u.s.w.
    Die Dateien müssen dann natürlich mit der jeweiligen Kunden_id versehen werden, um sie letztlich zuordnen zu können.

    Wie greifen denn die Anwender auf diese Dateien zu? Darf da jeder in den Verzeichnissen rumsuchen, auf die Gefahr hin, mit versehentlichen Mausbewegungen Unordnung zu verursachen? Wenn hingegen die Verwaltung über eine Oberfläche erfolgt, ist die Ordnerstruktur und die Dateibenennung egal, weil die Zuordnung zwischen Dateinamen und Vorgang über die Datenbank erfolgt.

    Vielleicht hat je einer von Euch schon Erfahrungen damit gesammelt bzw. hat vielleicht noch eine viel sinnvollere Idee, wie man das ganze übersichtlich strukturieren kann bzw. was wohl am schlausten wäre.

    Erfahrungen habe ich nicht, aber wenn ich mir so ansehe, wie andere Systeme mit großen Datenmengen umgehen ... beispielsweise Mailserver. Die haben ebenfalls keinen Dateinamen für ihre eingehende oder zu versendende Post. Der Dateiname der abgelegten Datei scheint eine zufällige Zeichenkombination zu sein, vermutlich bilden sie ihn aus dem Hashwert des Inhalts. Die Datei ist dann in ein Verzeichnis einsortiert, das dem ersten Zeichen dieses Hashwertes entspricht. Man kann da auch zwei oder mehr Zeichen nehmen, wenn man das noch weiter verteilen will. Dieser Hashwert/Dateiname wird dann in den Metadaten zum Vorgang hinterlegt.

    Wenn du das nach diesem Prinzip aufbauen willst, musst du den Fall beachten, dass inhaltlich gleiche Dokumente verschiedenen Vorgängen zugeordnet ist, sprich gleiche Hashwerte haben. Dann brauchst du nur eine Datei abzulegen, hast aber mehrere Referenzen darauf. Beim Löschen musst du dann erst schauen, ob es keine Referenzen weiter gibt, ansonsten nur die Referenz löschen.

    Lo!

  2. Nö, sonne richtig geile Idee habe ich noch nicht.
    Ich verstehe allerdings auch nicht ganz was dich stört, sind dir 5000 Verzeichnisse zu viel? Oder ist dir die Struktur zu flach?

    Ich frage mich allerdings warum du überhaupt nach dem Kommunikationsweg sortieren möchtest, wenn mir jemand per Post was schickt und ich antworte per Fax oder Mail, dann hängt die - eigentlich zusammenhängende - Korrespondenz nicht zusammen.

    Wenn die Struktur nicht gefällt, weil sie zu flach ist würde ich schauen ob man die 1000 Kunden gruppieren kann. Idealerweise gibt es schon Kundengruppen... was weiß ich Männlein und Weiblein und Gruppen/Organisationen oder Privat- und Geschäftskunden oder... was weiß ich, irgendwas was deine Datenbank hergibt. Notfalls kannst du auch auf Anfangsbuchstaben zurück greifen:
    ./Kunden/J-Q/M/Mayer-Heinrich/Korrespondenz/
    und danach würde ich aufs Datum oder auf "Threads" setzen, weil das die sinnvollen Sortierungen für Korrespondenz sind. Also wenn du sowas wie "Threads" ("Zeichen" "response ID" "In-Reply-To") verwaltest würde ich diese nehmen und die erste Betreffzeile des Threads als Titel des Verzeichnis.
    Gibt es sowas nicht, dann eben Datum:
    ./Kunden/J-Q/M/Mayer-Heinrich/Korrespondenz/2009/2009-10/SonneScheisseMitDerScheisse.tif
    wäre dann vielleicht ein Beschwerdefax, welches Herr Mayer im Oktober gesendet hat.

    --
    sh:( fo:| ch:? rl:( br:& n4:& ie:{ mo:} va:) de:µ_de:] zu:) fl:( ss:| ls:[ js:(