2012-06-20 14 views
5

Mam aplikację na wiele dzierżawców na Heroku (wiele kont, które nic nie wiedzą o sobie) i nie jestem pewien, jak najlepiej zaprojektować moją bazę danych. Schematy PostgreSta look awesome, ale heroku nie obsługuje large numbers of them well.Aplikacja dla wielu dzierżawców 3 na Heroku przy użyciu PostgreSQL

Teraz moja aplikacja Rails obsługuje głównie JSON, ponieważ większość szablonów renderuje stronę klienta (używając Backbone.js). Zastanawiam się więc nad przejściem do MongoDB, ponieważ: 1) każdy najemca może otrzymać jeden dokument "konta" najwyższego poziomu, a wszystko może być zagnieżdżone poniżej i 2) jego format pamięci tak bardzo przypomina JSON. Wciąż jesteśmy w fazie beta, więc można go ściągnąć. Czy istnieją uzasadnione powody, aby korzystać z Mongo? Czy dawny jest nawet inteligentnym sposobem na użycie Mongo?

Gdybym miał pozostać przy postgresie, czy wszystko powinno należeć do modelu konta na najwyższym poziomie (z indeksami)? Jeśli tak, w jaki sposób poradzić sobie z połączeniami? Czy możliwe jest wykonywanie sprzężeń wielopozycyjnych (total postgres noob)?

Mamy około 60 tys. Wpisów w jednym stole, ale jedno konto może mieć tylko 200-1000, więc martwię się o dołączenie do całego stołu.

Naprawdę doceniam każdą pomoc.

Aktualizacja:

Skończyło się na przejście do VPS (Rackspace Chmura) i wdrażanie schematów PostgreSQL jest. Nie żałujemy tego ruchu, ponieważ działa on dużo szybciej niż na Heroku i mamy większą kontrolę nad serwerem.

+2

Podczas wielu dzierżawców aplikacje każdy każdy tylko zakresy wszystko pod stołem konta podobnego, nic nowego na ten temat, to jest znacznie prostsze w obsłudze replikacja, a nawet shardowanie, gdy robisz to w ten sposób, zamiast rozwiązania opartego na wielu schematach. O sprzęcie, robi to, ale sprzężenia są zawsze drogie, bez względu na wszystko. –

+1

Brak wystarczającej liczby szczegółów w odpowiedzi na to pytanie. Powiedzenie nam, że "masz aplikację dla wielu dzierżawców", nie jest wystarczającą informacją, która pomoże ci zdecydować, jakiego rodzaju magazyn danych użyć. Albo może być idealnie odpowiednie. Ile masz stołów? Jak "relacyjne" są twoje dane? –

+0

@ MaurícioLinhares dzięki. Więc dodaj konto account_id do każdej tabeli, a indeksuj je, co mówisz? – kmurph79

Odpowiedz

Powiązane problemy