Entwurf von Web-Anwendungen für mehrere Benutzer

8

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.

    
gcoates 14.07.2009, 17:00
quelle

2 Antworten

6

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.

    
Andrew Hanson 14.07.2009, 17:07
quelle
5

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).

    
Dave Sherohman 14.07.2009 17:17
quelle

Tags und Links