Επίσης σκέφτηκα και μία ακόμα λύση με μία μόνο database.
Τρεις πίνακες: Users, Categories, Contacts.
Οι πίνακες users+categories, και categories+contacts είναι συνδεδεμένοι με many-to-one relationship (η πρώτη σχέση: κάθε user έχει πολλές κατηγορίες, αλλά κάθε κατηγορία ανήκει σε έναν μόνο user, και η δεύτερη: κάθε κατηγορία έχει πολλές επαφές αλλά κάθε επαφή μία μόνο κατηγορία).
Έτσι έχοντας μόνο 3 πίνακες (χωρίς επιπλέον για αντιστοιχήσεις) μπορούμε να δούμε η κάθε κατηγορία σε ποιον χρήστη ανήκει (απ' το foreign key) και αντίστοιχα η κάθε επαφή σε ποιον χρήστη ανήκει (απ' το foreign key βλέπουμε πρώτα σε ποια κατηγορία ανήκει, και μετά βλέπουμε η κατηγορία σε ποιον χρήστη ανήκει).
Αν θέλουμε να δούμε όλες τις επαφές του χρήστη τότε θα πρέπει να δούμε μόνο τις επαφές των κατηγοριών που ανήκουν στον χρήστη. Δηλαδή δεν πάμε κατευθείαν απ' τον χρήστη στις επαφές, αλλά περνάμε πρώτα απ' τις κατηγορίες του χρήστη.
Είναι "σωστό" ένα τέτοιο μοντέλο;
Α και μια ακόμα απορία.
Όπως είπαμε υπάρχουν δύο τρόποι. Πολλές βάσεις δεδομένων (μία για κάθε χρήστη), ή μονάχα μία.
Λογικά σε περιπτώσεις που μιλάμε για τεράστιους όγκους δεδομένων η πρώτη λύση θα είναι πιο γρήγορη;



