Προς το περιεχόμενο

Διάγραμμα ER σε mysql Workbench;


StefxOup

Προτεινόμενες αναρτήσεις

Δημοσ.

Στα πλαίσια κατασκευής ενός δικτυακού τόπου ανταλλαγής σπιτιών θα πρέπει να κάνω το διάγραμμα ER της Βάσης Δεδομένων μου. Επισυνάπτω μια εικόνα με το διάγραμμα που κατάφερα να κάνω ως τώρα με το εργαλείο mysql Workbench. Το χρησιμοποιώ πρώτη φορά :o

Θα ήθελα μια γνώμη για τη συσχέτιση μεταξύ του πίνακα members και του πίνακα exchanges. Το πρωτεύον κλειδί του πινακα members (id), είναι το ξένο κλειδί του πίνακα exchanges τόσο για το πεδίο member_1_id όσο και για το πεδίο member_2_id . Ισχύει ότι κάθε μέλος μπορεί να συμμετέχει σε περισσότερες από μία ανταλλαγές και σε κάθε ανταλλαγή συμμετέχουν δύο μέλη κάθε φορά. Σε διαφορετικές εγγραφές (ανταλλαγές) του πίνακα exchanges μπορεί να συμμετέχει το ίδιο μέλος. Η σχέση μεταξύ των οντοτήτων members και exchanges είναι πολλά προς πολλά; Αν ναι θα πρέπει να βάλω ένα τρίτο πίνακα για να την υποδηλώσω στο διάγραμμα ER, όμως αυτό σημαίνει ότι πρέπει να αλλάξω και τους πίνακες στη βάση μου και θα επηρεαστούν και τα sript μου που αυτή τη στιγμή δουλεύουν κανονικά ως έχουν;

erdiagramma.png

 

Ευχαριστώ εκ των προτέρων για τη βοήθεια και συγγνώμη για το σεντόνι :-D.

Δημοσ.

Για να κάνεις μια σχέση πολλά-προς-πολλά θα πρέπει να κάνεις στην ουσία ένα πινακάκι για κάθε πίνακα όπου θα είναι ένα-προς-πολλά

 

Οπότε θα κάνεις έναν MemberExchanges και θα έχεις μόνο foreign keys μειρκά στοιχεία του member & μερικά του exchange

Δημοσ.
Αν ναι θα πρέπει να βάλω ένα τρίτο πίνακα για να την υποδηλώσω στο διάγραμμα ER, όμως αυτό σημαίνει ότι πρέπει να αλλάξω και τους πίνακες στη βάση μου και θα επηρεαστούν και τα sript μου που αυτή τη στιγμή δουλεύουν κανονικά ως έχουν;

 

Αυτό είναι το βασικό που με ενδιαφέρει γιατί αν πρέπει να αλλάξω και την ίδια τη βάση και τα scriptakia μου έχω πρόβλημα. Μπορει στην απεικόνιση του ER να βάλω αυτό τον τρίτο πίνακα χωρίς να χρειάζεται να τον προσθέσω στην πραγματικότητα στη βάση;

Δημοσ.

Θα προσθεσεις απλά τον πίνακα που είπαμε παραπάνω και εκείο θα κάνεις τα foregn keys.. δεν θα αλλάξεις κάτι απο τους υπάρχοντες

Δημοσ.

Πέρα από το ότι τα αγγλικά είναι η επίσημη γλώσσα της πληροφορικής και ότι δεν υπάρχει κανένας λόγος να μην γράψει αγγλικά;

 

Τα greeklish δεν είναι κάποια standard γλώσσα και κάποιες λέξεις μπορούν να γραφτούν με δύο τρόπους (πχ αυτές που έχουνε ωμέγα μπορεί κάποιος να βάλει 'o' στην θέση του ή 'w') με αποτέλεσμα να είναι ότι χειρότερο για τα variable names γιατί πολύ απλά μπορεί να καταλήξεις με δύο variables τα οποία νοητικά είναι ίδια απλά ορθογραφικά γραμμένα αλλιώς και μετά άντε να διορθώσεις όλο το πρόγραμμά σου.

 

Ακόμα και αν το πρόγραμμα δεν πρόκειται ποτέ να το δει κανείς σε βάζει σε μια κακή νοοτροπία και το good programming practice πρέπει να ακολουθείτε πάντα, όχι επιλεκτικά, γιατί την μια μέρα γράφεις κώδικα μόνος σου, την επομένη με ένα team όπου θα πρέπει να μπορείς να ανταπεξέλθεις ή μπορεί να θες να δημοσιεύσεις ένα κομμάτι κώδικα, είτε για να πάρεις απόψε είτε επειδή θες να μοιραστείς μια εμπειρία σου. Γιατί να το περιορίσεις μόνο στην Ελληνική κοινότητα και να μείνει ανεκμετάλλευτη η δύναμη που σου προσφέρει το internet?

 

Αυτά τα ολίγα και συγγνώμη στον topic starter για το off-topic αλλά για καλό του είναι :)

Δημοσ.

Επίσης μπορείς να χρησιμοποιήσεις ελληινική γλώσσα.. για να νιώθεις και πιο έλληνας... υποστηρίζονται πλήρως από την SQL.. αλλα φαντάσου ένα ερώτημα πως θα ήταν!

 

Και αφού το πρόγραμμα έιναι για προσωπική χρήση ο καθένας τα βάζει όπως νομίζει.. και a,b,c να τα βάλεις πάλι θα κάνεις την δουλειά σου.. και οι good τεχνικές είναι πολλές...

 

Πχ.. γιατι να είναι πιο good το customerName απ' το customer_Name ή το customer-name ή το _customer_name ή το c_name ή ή ή... άνοιξε ένα θέμα αν θες για παιρεταίρω ;-)

Δημοσ.

Ξεφεύγεις τώρα, εσύ μιλάς ξαφνικά για coding style ενώ εγώ μιλάω για μια γενική νοοτροπία η οποία δεν έχει να κάνει με εθνικότητα (την οποία κακός αναφέρεις γιατί δεν έχει να κάνει με το development). Το customerName ή customer_Name είναι όντως προσωπική προτίμηση του καθενός αλλά το a,b,c παραμένει κακή επιλογή και αυτό γιατί πολύ απλά είναι κακά variable names που δεν περιγράφουν το τι είναι το value το οποίο θα κρατήσουν.

 

Το να γράφεις κώδικα με την νοοτροπία 'ε εντάξει μωρέ, για μένα είναι δεν πειράζει' μόνο κακό σου κάνει και δεν βοηθάει την εξέλιξή σου σαν developer και αν βρεθείς σε ένα team θα έχεις πρόβλημα. Αλλά ακόμα και αν δεν βρεθείς, πάλι δημιουργεί θέμα στην εξέλιξή σου. Όχι δεν αναφέρομαι στα greeklish συγκεκριμένα, αυτά είναι απλά ένα από τα πολλά της κακής γενικότερης νοοτροπίας που εννοώ.

 

Anyway, δεν θέλω να κάνω hijack περισσότερο το topic από ότι το κάναμε ήδη!

Δημοσ.

Δεν ήξερα ότι θα δημιουργούσα τέτοιο θέμα! Όπως φαίνεται και από την εικόνα κάποια είναι αγγλικά κάποια greeklish γενικότερα υπάρχει μια σύγχυση :P γιατί η εφαρμογή βρισκόταν υπό ανάπτυξη για μεγάλο χρονικό διάστημα και αφορά πτυχιακή εργασία. Συνεπώς δηλώνω πρωταρα:-)

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

Αρχειοθετημένο

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

  • Δημιουργία νέου...