Δημοσιεύτηκε: 11 Φεβ 2012, 21:58
@ilias: επειδή μου μυρίζει online εφαρμογή. Η λύση εξαρτάται αν ένας χρήστης θα έχει πρόσβαση στα δεδομένα άλλου χρήστη, πχ. αν συνεργάζονται;
* Αν τα δεδομένα των χρηστών είναι τελείως ανεξάρτητα τότε ο κάθε user σου θα έχει τη δική του βάση δεδομένων.
* Αν τα δεδομένων των χρηστών δεν είναι ανεξάρτητα, πχ. αν ένα χρήστης θέλει να μοιραστεί κάποιες επαφές με άλλους χρήστες τότε πάμε σε μία βάση δεδομένων.
Δεν υπάρχει σωστός τρόπος. Και οι δύο λύσεις έχουν πλεονεκτήματα και μειονεκτήματα. Η πρώτη είναι εύκολα υλοποιήσιμη (δε χρειάζεται να κρύψεις τα δεδομένα των άλλων χρηστών) και εύκολα scalable. Στη δεύτερη δε χρειάζεσαι να αλλάζεις βάσεις δεδομένων, αλλά πρέπει να κρύψεις τα δεδομένα των άλλων χρηστών.
Οι λύσεις αυτές είναι ανεξάρτητες από το ποια βάση θα χρησιμοποιήσεις. Πάλι η κάθε βάση έχει πλεονεκτήματα και μειονεκτήματα. Για μια απλή ιστοσελίδα η sqlite είναι υπέραρκετή, θεωρώ τη MySQL overkill (προσωπική άποψη). Αν ο κάθε χρήστης έχει τη δική του βάση τότε μπορεί αυτή να είναι ένα αρχείο sqlite, και μπορεί να γίνει και εύκολα parallelized: οι πρώτοι 100 χρήστες σε ένα server, οι επόμενοι στον άλλον, και το "parallelization" γίνεται από τον apache. Αν χρησιμοποιήσεις MySQL, μπορείς να την κάνεις παράλληλη άλλα έχει πολλή περισσότερη δουλειά. Η postgresql είναι παρόμοια με την mysql, για την couchdb δε μπορώ να εκφέρω γνώμη.
Αν αποφασίσεις για την πρώτη λύση και αύριο-μεθαύριο χρειαστείς ανταλλαγή δεδομένων μεταξύ των χρηστών τότε θα πρέπει να αλλάξεις το πρόγραμμά σου.
Πες μας αν θα επικοινωνουν τα δεδομενα των χρηστών για να συζητήσουμε πιο συγκεκριμένα.
* Αν τα δεδομένα των χρηστών είναι τελείως ανεξάρτητα τότε ο κάθε user σου θα έχει τη δική του βάση δεδομένων.
* Αν τα δεδομένων των χρηστών δεν είναι ανεξάρτητα, πχ. αν ένα χρήστης θέλει να μοιραστεί κάποιες επαφές με άλλους χρήστες τότε πάμε σε μία βάση δεδομένων.
Δεν υπάρχει σωστός τρόπος. Και οι δύο λύσεις έχουν πλεονεκτήματα και μειονεκτήματα. Η πρώτη είναι εύκολα υλοποιήσιμη (δε χρειάζεται να κρύψεις τα δεδομένα των άλλων χρηστών) και εύκολα scalable. Στη δεύτερη δε χρειάζεσαι να αλλάζεις βάσεις δεδομένων, αλλά πρέπει να κρύψεις τα δεδομένα των άλλων χρηστών.
Οι λύσεις αυτές είναι ανεξάρτητες από το ποια βάση θα χρησιμοποιήσεις. Πάλι η κάθε βάση έχει πλεονεκτήματα και μειονεκτήματα. Για μια απλή ιστοσελίδα η sqlite είναι υπέραρκετή, θεωρώ τη MySQL overkill (προσωπική άποψη). Αν ο κάθε χρήστης έχει τη δική του βάση τότε μπορεί αυτή να είναι ένα αρχείο sqlite, και μπορεί να γίνει και εύκολα parallelized: οι πρώτοι 100 χρήστες σε ένα server, οι επόμενοι στον άλλον, και το "parallelization" γίνεται από τον apache. Αν χρησιμοποιήσεις MySQL, μπορείς να την κάνεις παράλληλη άλλα έχει πολλή περισσότερη δουλειά. Η postgresql είναι παρόμοια με την mysql, για την couchdb δε μπορώ να εκφέρω γνώμη.
Αν αποφασίσεις για την πρώτη λύση και αύριο-μεθαύριο χρειαστείς ανταλλαγή δεδομένων μεταξύ των χρηστών τότε θα πρέπει να αλλάξεις το πρόγραμμά σου.
Πες μας αν θα επικοινωνουν τα δεδομενα των χρηστών για να συζητήσουμε πιο συγκεκριμένα.