Ιδέες για messages application

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ιδέες για messages application

Δημοσίευση από Apostolis_38 » 28 Ιουν 2013 14:39

Καλησπέρα σε όλους.

Σε μια εφαρμογή που φτιάχνω θέλω να φτιάξω μια υποεφαρμογή με την οποία ένας χρήστης θα στέλνει μήνυμα σε άλλον χρήστη.
Κάτι πολύ όμοιο με τα pm που χρησιμοποιούμε και εδώ.
Το περίπλοκο της υπόθεσης είναι οτι υπάρχουν δύο είδη χρηστών με τον δικό του πίνακα το κάθε ένα. Δηλαδή έχουμε δύο πίνακες.
Τα μηνύματα θα μπορούν να φεύγουν από και να πηγαίνουν προς οποιονδήποτε χρήστη.
Και από τον ένα πίνακα προς τον εαυτό του και προς τον άλλο.

Δεν θέλω να αναγκάζω τον χρήστη να επιλέξει ρητά σε ποιό είδος χρήστη θα στείλει το μηνυμά του. Με απλά λόγια δεν θέλω να τον αναγκάζω να κάνει κλίκ στο αντίστοιχο είδος και μετά να γράφει το μήνυμα κ.λ.π.
Οπότε το μπερδεμα έγκειται στο πως θα καταγράφω το id από και το id προς.
Κυρίως ώστε μετά να μπορεί να απαντήσει ο δεύτερος χρήστης κ.ο.κ.

Η λύση που έχω σκεφτεί είναι η εξής:
Να κάνει ο χρήστης κλίκ επάνω στο όνομα του χρήστη στον οποίο πρόκειται να στείλει το μήνυμα (κάτι αντίστοιχο με την αποστολή pm).

Εχει κανείς καμμία άλλη ιδέα;

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Ιδέες για messages application

Δημοσίευση από gvre » 28 Ιουν 2013 15:04

Apostolis_38 έγραψε:Καλησπέρα σε όλους.

Σε μια εφαρμογή που φτιάχνω θέλω να φτιάξω μια υποεφαρμογή με την οποία ένας χρήστης θα στέλνει μήνυμα σε άλλον χρήστη.
Κάτι πολύ όμοιο με τα pm που χρησιμοποιούμε και εδώ.
Το περίπλοκο της υπόθεσης είναι οτι υπάρχουν δύο είδη χρηστών με τον δικό του πίνακα το κάθε ένα. Δηλαδή έχουμε δύο πίνακες.
Συνήθως χρησιμοποιείται ένας πίνακας για τους χρήστες και βάζεις σε άλλους πίνακες τους ρόλους, δικαιώματα κλπ (εκτός αν χρησιμοποιείς partitioning). Υπάρχει περίπτωση να έχεις το ίδιο id και στους 2 πίνακες;

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ιδέες για messages application

Δημοσίευση από Apostolis_38 » 28 Ιουν 2013 15:17

Ναι, έτσι είναι το συνηθισμένο.
Αλλά εδώ υπάρχουν διαφορετικοί πίνακες γιατί υπάρχουν διαφορετικές προδιαγραφές και διαφορετικά πεδία για την κάθε κατηγορία.
Παράδειγμα η μια κατηγορία έχει Α.Φ.Μ και η άλλη όχι.
Δεν πρόκειται για κατηγορίες χρηστών με την έννοια του admin κ.λ.π.

Ναι, σίγουρα θα υπάρξουν ίδια id αλλά όχι για τον ίδιο χρήστη.

Στην αρχή σκέφτηκα την δημιουργία ενός πίνακα για όλους αλλά για λειτουργικούς λόγους σκέφτηκα οτι θα ήταν καλύτερο να χωριστούν σε δύο.

Για πες το σκεπτικό σου.

Edit: Φυσικά υπάρχουν και ορισμένα κοινά πεδία στους πίνακες.

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Ιδέες για messages application

Δημοσίευση από gvre » 28 Ιουν 2013 15:26

Αν μπορείς, βάλε τους όλους σε έναν γιατί αργότερα θα ξανασυναντήσεις το ίδιο πρόβλημα και σε άλλα υποσυστήματα. Τα υπόλοιπα (κατηγορίες χρηστών, κλπ) μπορείς να τα βάλεις σε άλλους πίνακες.
Αν δε θέλεις να αλλάξεις τον σχεδιασμό της βάσης, θα πρέπει με κάποιο τρόπο να αποθηκεύεις και το όνομα του πίνακα, στον οποίο βρίσκεται ο χρήστης.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ιδέες για messages application

Δημοσίευση από Apostolis_38 » 28 Ιουν 2013 15:53

- Δυστυχώς αυτό το φοβάμαι.
Αλλα και με την εννοποίηση των πινάκων έχω ήδη αρκετά προβλήματα στο λειτουργικό κομμάτι της εφαρμογής. :evil:
Εκτός αυτού, θα φτιαχτούν κι ένα σωρό άλλοι πίνακες που θα "πέφτουν" επάνω σε αυτούς τους δύο.
Αν συνεχίσω τη "διάσπαση" μετά από λίγο καιρό θα χρειάζεται ένα query τρείς σελίδες για να πάρω τα στοιχεία που χρειάζομαι.
Κι αν οι χρήστες αυξηθούν πολύ (που αυτός είναι ο στόχος) θα έχω πρόβλημα απόδοσης.

Στύβω το μυαλό μου κι εγώ να βρω τι είναι καλύτερο.


- Εχω σκεφτεί τον τρόπο.
Κάνοντας login η εφαρμογή κρατάει (ούτως ή άλλως) την κατηγορία και το id του χρήστη.
Οπότε αυτά τα έχω εύκαιρα. Κάνωντας κλίκ πάνω στο λινκ του άλλου χρήστη έχω και τα υπόλοιπα που χρειάζομαι.
Είπα μήπως υπάρχει κανένας άλλος τρόπος που δεν πάει το μυαλό μου.

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

Ιδέες για messages application

Δημοσίευση από Khronos » 28 Ιουν 2013 16:51

Και αν ένας χρήστης στο μέλλον πρέπει να ανήκει και στη δεύτερη κατηγορία τι θα κάνεις? Θα τον έχεις σε 2 πίνακες?

Εγώ θα πήγαινα με ένα πίνακα και τις 3 σελίδες query! :P

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ιδέες για messages application

Δημοσίευση από Apostolis_38 » 28 Ιουν 2013 16:59

Ναι, αλλά θα έχει τελείως διαφορετικά δικαιώματα.

Κι εσύ ε; :think:

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Ιδέες για messages application

Δημοσίευση από gvre » 28 Ιουν 2013 17:12

Apostolis_38 έγραψε:Κι αν οι χρήστες αυξηθούν πολύ (που αυτός είναι ο στόχος) θα έχω πρόβλημα απόδοσης
Για να έχεις πρόβλημα απόδοσης θα χρειαστεί να έχεις πάρα πάρα πολλούς χρήστες. Κάνε το με έναν πίνακα και αν κάποια στιγμή έχεις πρόβλημα απόδοσης μπορείς να χρησιμοποιήσεις caching.

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ιδέες για messages application

Δημοσίευση από Apostolis_38 » 28 Ιουν 2013 17:32

Καλά ρε παιδιά, θα το ξανασκεφτώ το ζήτημα.

Από αλλού ξεκινήσαμε κι αλλού καταλήξαμε :hammer:

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

Ιδέες για messages application

Δημοσίευση από alou » 28 Ιουν 2013 17:42

Μια άλλη περίπτωση, ίσως ήταν σε έναν (ή και στους 2) πίνακα να μην χρησιμοποιείς το auto increment για το user id που φαντάζομαι ότι κάνεις τώρα, να το μετονομάσεις και να φτιάξεις ένα ακόμα column που θα είναι το user id (με trigger) στο οποίο θα προσθέτεις το auto increment και ένα prefix που θα είναι εύκολο να αναγνωρίσεις και να βρεις την κατηγορία που ανήκει ο χρήστης.

Δηλαδή, το user id θα γίνει Z1233 αντί για 1233 και με ένα substring τσεκάρεις αν είναι στην ομάδα Z :P

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ιδέες για messages application

Δημοσίευση από Apostolis_38 » 28 Ιουν 2013 22:04

Ναι, αναγνωριστικό της κάθε ομάδας μπορείς να βάλεις άνετα.

Το πρόβλημα δεν βρίσκεται στους πίνακες αλλά στο πως θα γίνεται η όλη διαχείριση από το front end.
Από την άλλη, όντως κι εγώ φοβάμαι οτι αργότερα θα αντιμετωπίσω κι άλλα προβλήματα.
Γενικώς είμαι υπέρ της προσέγγισης που μου προτείνεται όλοι αλλά είναι λίγο μπέρδεμα το όλο θέμα γιατί υπάρχουν συγκεκριμένες απαιτήσεις.

Είδωμεν.

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Ιδέες για messages application

Δημοσίευση από geomagas » 29 Ιουν 2013 16:44

Ακριβώς για κάτι τέτοιες καταστάσεις έχουν εφευρεθεί οι σχέσεις IS-A...

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ιδέες για messages application

Δημοσίευση από Apostolis_38 » 30 Ιουν 2013 22:30

Δεν είναι ακριβώς έτσι. Με την έννοια οτι δεν είναι εκεί το πρόβλημα.
Αλλά στο ότι όταν μαζεύοντας όλες αυτές τις πληροφορίες σε έναν πίνακα δημιουργούνται άλλα προβλήματα.
Οταν για παράδειγμα πρέπει να κάνεις insert και select max από τον ίδιο πίνακα μόνο με ένα query και χωρίς pdo ή php loopαρίσματα τότε τα πράγματα μπλέκουν.
Το γιατί πρέπει να γίνει έτσι είναι άλλο θέμα.

Εν πάσει περιπτώσει, θα εξετάσω καλύτερα και τις δύο περιπτώσεις και θα δω τι θα κάνω.
Ούτως ή άλλως κι εγώ είμαι υπέρ της φιλοσοφίας του ενός πίνακα.

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Ιδέες για messages application

Δημοσίευση από geomagas » 30 Ιουν 2013 23:22

Υλοποιώντας μία σχέση IS-A ουσιαστικά φτιάχνεις (στην περίπτωσή σου) 3 πίνακες και όχι έναν.
Τα προβλήματα των λεγόμενων "αραιών πινάκων" είναι γνωστά στη θεωρία, όσο κι αν κάποιοι είτε από τεμπελιά, είτε από ερασιτεχνισμό, είτε επειδή πραγματικά δεν αξίζει τον κόπο, κάνουν τα στραβά μάτια.
Εξέτασέ το, δεν θα χάσεις. Εμένα με έχει βγάλει ασπροπρόσωπο πολλές φορές, ειδικά όταν χρειάζονται "μελλοντικές επεμβάσεις" (ξέρεις, ο πελάτης ή το αφεντικό "ξέχασε" ή "θεώρησε αυτονόητο" ότι θα χρειαστεί και το "ταδε", ή "οι ανάγκες άλλαξαν" κλπ κλπ...)

Apostolis_38
Δημοσιεύσεις: 1969
Εγγραφή: 14 Φεβ 2008 16:20
Τοποθεσία: ΠΕΙΡΑΙΑΣ

Ιδέες για messages application

Δημοσίευση από Apostolis_38 » 01 Ιούλ 2013 12:41

Οκ μαν.
Θα το ψάξω λίγο παραπάνω :D

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες