Δημοσιεύτηκε: 12 Φεβ 2012, 13:20
από Dimitris
Ωραία από τη στιγμή που θα έχεις ανεξάρτητα δεδομένα για κάθε χρήστη, θα πρότεινα ανεξάρτητες βάσεις δεδομένων για κάθε χρήστη, είτε στην περίπτωση MySql είτε στην sqlite. Στην sqlite απλά θα έχεις πολλά αρχεία, ένα για κάθε χρήστη. Θα μιλήσω για τις server εφαρμογές μιας και για desktop εφαρμογές δεν έχω εμπειρία. Κάθε χρήστης θα τρέχει ένα instance του προγράμματός σου (μέσω apache ή όποιου άλλου server) και θα έχει μία βάση δεδομένων. Έτσι η αρχιτεκτονική θα είναι πλήρως decoupled, kαι θα μπορείς να τρέχεις το πρόγραμμα του ενός χρήστη σε έναν υπολογιστή και του άλλου σε άλλον.

Ας υποθέσουμε ότι ο υπολογιστής σου μπορεί να σηκώσει 10 χρήστες και η εφαρμογή σου αρχίζει και γίνεται δημοφιλής, οπότε αποκτάει 20 χρήστες. Τότε θα αρχίσει να γίνεται αργή αν συνεχισει να λειτουργεί στον ίδιο υπολογιστή. Ή θα πρέπει να πάρεις μεγαλύτερο υπολογιστή ή δεύτερο ίδιο. Φυσικά μπορείς θεωρητικά να παίρνεις πάντα μεγαλύτερο υπολογιστή αλλα στην πράξη υπάρχει κάποιο όριο. Αρα θα πρέπει να μοιράσεις τα δεδομένα σου σε περισσότερους υπολογιστές. Αυτό είναι το parallelization. Με την παραπάνω αρχιτεκτονική έχεις τους 10 πρώτους χρήστες στον Η/Υ 1, τους επόμενους 10 στον Η/Υ 2, κλπ. Η επιλογή του κατάλληλου server γίνεται από τον apache με κάποια ρύθμιση.

Εγώ είμαι υπέρμαχος της sqlite γιατί έχει όριο μεγέθους βάσης δεδομένων 128TB και τις εφαρμογές των κοινών θνητών όπως εγώ είναι υπεραρκετα.
medigeek έγραψε:php/python/c/c++ + sqlite είναι απίθανος συνδυασμός.

Τo συνδυασμό αυτό, python+sqlite, χρησιμοποίησα σε μια desktop εφαρμογή και σε μια ιστοσελίδα ruby+sqlite χωρίς κανένα πρόβλημα.