sql >> Databasteknik >  >> RDS >> PostgreSQL

Multi-tenant rails-applikation:vilka är fördelarna och nackdelarna med olika tekniker?

MSDN har en bra introduktion till multi-tenant dataarkitektur .

I ena änden av spektrumet har du en databas per hyresgäst ("delade ingenting"). "Delat ingenting" gör katastrofåterställning ganska enkel och har den högsta graden av isolering mellan hyresgäster. Men den har också den högsta genomsnittliga kostnaden per hyresgäst, och den stöder de minsta hyresgästerna per server.

I andra änden av spektrumet lagrar du ett klient-ID-nummer i varje rad i varje delad tabell ("delade allt"). "Delat allt" gör katastrofåterställning svårt – för en enskild hyresgäst måste du återställa en del rader i varje delad tabell – och den har den lägsta graden av isolering. (Dåligt utformade frågor kan avslöja privata data.) Men den har den lägsta kostnaden per hyresgäst och den stöder det högsta antalet hyresgäster per server.

Det här låter som om du pratar om ett schema per hyresgäst. Var uppmärksam på behörigheter (SQL GRANT och REVOKE uttalanden. Och ÄNDRA STANDARDPRIVILEGIER .)



  1. Django-fixturen misslyckas, med angivande av DatabaseError:värdet är för långt för att typtecken varierar (50)

  2. DATEDIFF() eller BETWEEN för datumintervall i SQL-frågor

  3. Trimmar inte MySQL TRIM-funktionen radbrytningar eller vagnretur?

  4. Jetty 7 + MySQL Config [java.lang.ClassNotFoundException:org.mortbay.jetty.webapp.WebAppContext]