Σχεδιασμός βάσης δεδομένων

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

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

Απάντηση
Άβαταρ μέλους
philos
Δημοσιεύσεις: 260
Εγγραφή: 30 Αύγ 2007 23:32

Σχεδιασμός βάσης δεδομένων

Δημοσίευση από philos » 23 Ιούλ 2012 15:40

Πρόσφατα ανέπτυξα σε PHP & MySQL ένα σύστημα thumbs up/down για τη μηχανή forum vBulletin. Είναι από τα πρώτα μου modifications.
Στην αρχή το έφτιαξα για vB3 (= για τα 5 sections του: 1)forum posts, 2) pictures, 3)picture comments, 4) profile visitor messages, 5) social group messages).
Για τα thumbs που γίνονται σε καθένα από αυτά τα sections, όρισα στη βάση από 1 ίδιους πίνακες (με διαφορά μόνο το τελευταίο column που αφορά το id του περιεχομένου),της μορφής:
id (auto_increment)
thumb (= έχει τιμές 1 ή -1)
userid
username
dateline
to_userid
postid ή pictureid ή commentid ή vmid ή gmid


Κατά τη μετατροπή του modification αυτού σε vB4, προέκυψε η ανάγκη να αναπτυχθεί το thumbs up/down σύστημα και για άλλα τρία sections! (CMS articles, blog entries, blog comments). Και τώρα μου δημιουργήθηκε η εμφιβολία: μήπως θα έπρεπε εξ αρχής να γίνουν όλα με ΕΝΑΝ πίνακα της μορφής:
id (auto_increment)
thumb (= έχει τιμές 1 ή -1)
userid
username
dateline
to_userid
contenttype
contentid


; :(
... ή μήπως η λύση του ενός πίνακα για κάθε section (σύνολο 8 πίνακες) βελτιστοποιεί με κάποιον τρόπο το όλο σύστημα ή επιβαρύνει αρνητικά τη database;
Έχω βάλει και έναν πίνακα με columns μιας σειράς με τα στατιστικά του συστήματος, που ανανεώνονται κάθε 24 ώρες με cronjob. Οπότε μιλάμε για 9 πίνακες!

Άβαταρ μέλους
philos
Δημοσιεύσεις: 260
Εγγραφή: 30 Αύγ 2007 23:32

Σχεδιασμός βάσης δεδομένων

Δημοσίευση από philos » 26 Ιούλ 2012 16:47

Κάποια άποψη;
Αναλόγως θα ήθελα να ρωτήσω πως μπορώ να ενώσω με εντολή MySQL τους πίνακες ώστε να προκύψει ΕΝΑΣ πίνακας ίδιας μορφολογίας, αλλά με ένα επιπλέον column "contenttype" και ένα column "contentid" όπου θα έχει τις τιμές των postid, pictureid, commentid, vmid και gmid (τα οποία δεν θα υπάρχουν φυσικά στο νέο-τελικό πίνακα, αφού θα έχουν αντιστιχηθεί στο contentid). :wink:

Απάντηση

Επιστροφή στο “MySQL”

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

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