Ich arbeite an einer Webanwendung, die nach Abschluss eine gehostete Mehrbenutzerlösung sein wird. Ich versuche herauszufinden, wie ich das Datenbankdesign für meine App am besten handhaben kann. Insbesondere muss ich herausfinden, wie mehrere separate Konten verwaltet werden.
So wie ich es sehe, gibt es ein paar Möglichkeiten: 1) Haben Sie einen Satz von Datenbanktabellen. Fügen Sie in jeder Tabelle eine Benutzerspalte oder etwas Ähnliches ein, die jede Zeile dem richtigen Benutzerkonto zuordnen. 2) Erstellen Sie eine völlig separate Datenbank für jeden Benutzer. Aus Performance-Gründen scheint das keine besonders gute Idee zu sein. 3) Erstellen Sie ein separates Schema für jeden Benutzer in einer einzelnen Datenbank. Jedes Schema enthält die Tabellen für jeden Benutzer.
Wie würden Sie mit diesem Problem umgehen? Gibt es eine Option, die ich vermisse? Ich verwende PostgreSQL als meine Datenbank, wenn das einen Unterschied macht, wie Sie mit diesem Problem umgehen.
Ich bin fast immer mit Option # 1 gegangen. Wenn Sie es richtig auslegen, benötigen Sie möglicherweise nur Ihre Benutzerspalte in einigen Schlüsseltabellen, die Ihr Einstiegspunkt sind, und dann kann alles andere aus diesen Schlüsseltabellen herausgeführt werden.
Als allgemeine Faustregel wollen Sie eigentlich nie mehrere Tabellen (oder Datenbanken) mit identischen Strukturen haben. Wenn Sie die Erstellung separater Tabellen stuff_for_user_a
und stuff_for_user_b
erwägen (was Ihre Optionen # 2 und # 3 sehr ähnlich klingen), dann möchten Sie wahrscheinlich nur eine Tabelle stuff
erstellen, die ein% enthält. Spalte "co_de%" (dh Ihre Option # 1).
Tags und Links database-design saas