![]() |
Datenbank: MySQL • Version: 8.0 • Zugriff über: Egal
Datenbankstruktur Aufbau
Hallo zusammen,
im Moment habe ich einen Dienst, der ca. 200 - 300 Werte pro Tag zusammen stellt. In einem Single User Modus ist das kein Problem, da ich alles in eine Tabelle schreibe. Gehen wir nun davon aus, dass die 200 - 300 Werte pro Tag pro Benutzer erstellt werden. Wenn ich jetzt 100 Benutzer habe, kommen so pro Tag 20000 - 30000 Datensätze zusammen. In einer Woche wären es dann 140000 - 210000 Datensätze. Keiner der Benutzer soll die Daten von einem anderen Benutzer einsehen können. Die zwei folgenden Überlegungen spiele ich gedanklich durch:
Die folgenden Fragen habe ich:
Was könnt Ihr mir aus euren Erfahrungen heraus erzählen? |
AW: Datenbankstruktur Aufbau
Für jeden Benutzer eine Tabelle anzulegen, würde man aus Gründen des Aufwands nicht machen. Vom Datenschutz her gewinnst du da nur, wenn du für jeden Benutzer einen eigenen Zugang anlegst, abhängig vom Benutzer den korrekten Zugang benutzt und die Rechte für die Tabelle setzt. Vielleicht sparst du ein paar Bytes pro Datensatz, wenn der Benutzer nicht mit jedem Datensatz gespeichert werden muss, sondern sich aus der Tabelle erschließt.
Bei einem guten Datenbanksystem (was ich MySQL/MariaDB allerdings abspreche) ist bei derart wenigen Datensätzen kein Performanceunterschied zu erwarten. |
AW: Datenbankstruktur Aufbau
Zitat:
select/insert/update/delete wie auf jeder Tabelle machen, die trigger packen schreibende Operationen das dann in echte tabellen, beim select source des views hinterlegst du dann zB abhängig vom current_user eine einschränkung auf die foreign key regel, was für wen sichtbar ist. Am view bekommen die user dann rechte, die views selber bzw trigger da drauf haben die rechte an den erforderlichen Tabellen, an denen dann aber die user keine rechte haben großer vorteil: ein mal so umgesetzt brauchst du dir in keiner client app irgendwelche Gedanken machen, was der User dann sieht und warum. Das regelwerk ist an einer Stelle in der db hinterlegt und kann jederzeit geändert werden. Die Lösung mit eine Tabelle pro user würde ich niemals so machen, weil ich mit so einer Konstruktion mal bei einem Kunden zu tun hatte, der Software für Speditionen machte und dabei jede Preisliste variante in abhängigkeit von entfernung/gewicht/... in eine eigene Tabelle gepackt hat. in einer Datenbank waren alleine dafür schon 2400 Tabellen enthalten, die teilweise aufgrund historischer gründe unterschiedliche Metadaten hatten. Das war schon auf der Ebene ein unbenutzbares Monstrum .... Ich weiss das postgres updatable views kann, wenn auch nicht annähernd mit den Möglichkeiten, was da bei firebird/interbase seit 30 Jahren geht, aber ob mysql das überhaupt kann, keine Ahnung ;-) |
AW: Datenbankstruktur Aufbau
Hallo Holger,
danke für Deine Antwort. Hast Du vielleicht ein paar Links mit Anleitungen dazu, wie man den Aufbau in Firebird umsetzt ? Konnte bis jetzt nicht direkt dazu etwas finden. |
AW: Datenbankstruktur Aufbau
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz