Nein, eine Datenbank pro Client zu erstellen, vorausgesetzt, ein Client ist nur eine Entität in Ihrer Datenbank, im Gegensatz zu einem separaten Benutzer einer mandantenfähigen Anwendung, ist keine gute Idee.
Wenn Sie andere Entitäten wie Hardware, Projekte oder andere Ressourcen unter einem Client registrieren möchten, dann speichern Sie entweder in einer separaten Tabelle und erstellen einen Fremdschlüssel von der Ressource zum Client, der ein "has-a" anzeigt. Beziehung.
, die wie folgt aussehen:
Clients:
Id Name
1 Foo
2 Bar
Ressourcen:
Id ClientId Name
1 1 Resource of Foo
2 1 Resource of Foo
3 2 Resource of Bar
Sie auch den oben beschriebenen Ansatz mit einem Multi-Tenant-System übernehmen könnte, wo alle Benutzer Ihrer Anwendung in derselben Datenbank und Anwendung ausgeführt werden.
Mit diesem Ansatz werden Sie jedoch unterschiedliche Anliegen haben. Zum Beispiel könnte die einzelne Datenbank überproportional wachsen und die Leistung sowie die Einfachheit der Sicherung und Wiederherstellung beeinträchtigen. Sie müssen in der gesamten Anwendung Prüfungen hinzufügen, bei denen jeder Datenbankzugriff auf Zeilen erfolgt, für die der aktuelle Benutzer Berechtigungen besitzt. Es kann schwieriger sein, eine Aktion eines Benutzers rückgängig zu machen, sowie neue Funktionen für bestimmte Benutzer einzuführen (da sie alle mit demselben Software- und Datenbankschema ausgeführt werden).
Lesen Sie mehr über den Begriff "Multi-Tenancy", das ist das, was Sie suchen:
Answering wie zu implementieren Multitenancy wäre zu breit, siehe zum Beispiel die MSDN-Blog-Serie darüber in den Links oben. Wie für die Performance-Frage: nur Sie wissen. Alles hängt von Ihrem Code, Ihren Daten, Ihrem Schema, Ihrer Hardware und so weiter ab. Benchmark es.
Warum ändern Sie meine Frage, wenn Sie meine Frage nicht verstehen. –
Ich verstehe Ihre Frage und habe meine Antwort bearbeitet. Ihre erste "wann immer ein neuer Kunde kommt" war unklar. – CodeCaster
Dies ist eine ** schrecklich schlechte ** Ansatz - SQL Server kann ** leicht ** eine "Master" -Tabelle mit 30 Unternehmen darin behandeln - es gibt absolut ** keine Notwendigkeit ** (und keinen Vorteil), um eine separate Datenbank zu erstellen für jeden Kunden .... –