THMMY.gr

Μαθήματα Κύκλου Ηλεκτρονικής & Υπολογιστών => Βάσεις Δεδομένων => Topic started by: nohponex on November 18, 2015, 22:05:49 pm



Title: [Βάσεις Δεδομένων] Συμβάσεις για ονοματοδοσία πινάκων και πεδίων
Post by: nohponex on November 18, 2015, 22:05:49 pm
Επισυνάπτω μία πρόταση σύμβασεων για την ορθή ονοματοδοσία πινάκων και πεδίων της βάσης που είχαμε γράψει με τον ConsideredHarmless σε περσινή εργασία.

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

Ανοιχτό σε κάθε debate/επέκταση.  8))



Πίνακες:
  • Τα ονόματα των πινάκων είναι πάντα με πεζά και στον ενικό.
  • Τα ονόματα των πινάκων που περιέχουν τον χαρακτήρα `-` δηλώνουν ότι υπάρχει συσχέτιση, Ν:M στη γενική περίπτωση, μεταξύ των πινάκων αυτών. Για παράδειγμα, έστω οι πίνακες table1 και table2, με πρωτεύοντα κλειδιά pk1 και pk2 αντίστοιχα. Τότε ο πίνακας με το όνομα table1-table2 δηλώνει μια συσχέτιση πολλών εγγραφών του table1 προς πολλές εγγραφές του table2. Το πρότυπο αυτό μπορεί να επεκταθεί και σε συσχετίσεις μεταξύ πάνω από δύο πινάκων.
  • Εάν το όνομα ενός πίνακα περιέχει κενό χαρακτήρα, αυτός μετατρέπεται σε `_`.

Πεδία:

  • Τα ονόματα των πεδίων είναι πάντα με πεζά και στον ενικό.
  • Τα πεδία ενός πίνακα table1 με ονόματα της μορφής `table2-attr2`, όπου table2 όνομα ενός άλλου πίνακα και attr2 όνομα πεδίου του πίνακα table2, δηλώνουν συσχετίσεις N:1, δηλαδή πολλών εγγραφών του table1 προς μια εγγραφή του table2. Το πρότυπο αυτό μπορεί να επεκταθεί και στο `action-table2-attr2`, όπου το action είναι το όνομα μιας ενέργειας που σχετίζεται με τον πίνακα table2, όπως created, modified, published, κ.α..
  • Εάν το όνομα ενός πεδίου περιέχει κενό χαρακτήρα, αυτός μετατρέπεται σε `_`.

Ονόματα συσχετίσεων στο διάγραμμα οντοτήτων-συσχετίσεων:

  • Οι σχέσεις με όνομα table1.table2-attr2, δηλώνουν συσχέτιση Ν:1 από τον πίνακα table1 στο πεδίο attr2 του πίνακα table2. Μπορεί επίσης να επαυξηθεί με ένα πρόθεμα ενέργειας, όπως περιγράφτηκε παραπάνω.
  • Οι σχέσεις table1-table2, δηλώνουν σχέση Ν:Μ στη γενική περίπτωση, μεταξύ των πινάκων table1 και table2, ορίζονται ως το πρωτεύον κλειδί του κάθε πινάκα. Το πρότυπο αυτό μπορεί να επεκταθεί και σε συσχετίσεις μεταξύ πάνω από δύο πινάκων.


Title: Re: [Βάσεις Δεδομένων] Συμβάσεις για ονοματοδοσία πινάκων και πεδίων
Post by: nohponex on January 27, 2016, 22:58:18 pm
Τίποτα;
Για τώρα που είστε ζεστοί :P


Title: Re: [Βάσεις Δεδομένων] Συμβάσεις για ονοματοδοσία π_
Post by: Exomag on January 27, 2016, 23:31:32 pm
Είχα δει το topic πριν καιρό, αλλά μετά καθώς άρχισα να ασχολούμαι με το μάθημα Βάσεων του 9ου εξαμήνου δεν το ξανακοίταξα. Αποτέλεσμα αυτού είναι να καταλήξω από μόνος μου σε ένα αντίστοιχο σύστημα σύμβασης ;D

Γενικώς κατέληξα στα εξής:

Tables:
  • Τα ονόματα των πινάκων είναι πάντα με το πρώτο γράμμα κεφαλαίο, τα υπόλοιπα πεζά, και στον ενικό. Για παράδειγμα User, Item, κλπ.

Fields:
  • Τα ονόματα των πεδίων είναι πάντα με το πρώτο γράμμα κεφαλαίο, τα υπόλοιπα πεζά, και στον ενικό. Για παράδειγμα Name, Rating, κλπ.
  • To πεδίο id, εφόσον υπάρχει, είναι και με τα δύο γράμματα κεφαλαία. Δηλαδή ID.

Relationships:
  • Οι 1-Ν συσχετίσεις, που υλοποιούνται απλά με ένα foreign key στον ένας από τους δύο πίνακες που συμμετέχουν στη συσχέτιση, χρησιμοποιούν ένα foreign key με το όνομα του πίνακα στον οποίον κάνει reference και μετά με τη λέξη ID. Για παράδειγμα αν υπάρχει η συσχέτιση 1-Ν μεταξύ των πινάκων User και Email, τότε στον πίνακα Εmail θα υπάρχει το πεδίο UserID.
  • Οι M-N συσχετίσεις, που υλοποιούνται με τη δημιουργία επιπλέον πίνακα, χρησιμοποιούν την εξής σύμβαση. Έστω ότι η συσχέτιση M-N είναι μεταξύ των πινάκων User και Item και υλοποιεί τη συσχέτιση "owns", τότε ο πίνακας που θα υλοποιεί τη συσχέτιση θα έχει το όνομα UserItemOwns και θα έχει σαν foreign keys τα πεδία με ονόματα UserID και ItemID.


Title: Re: [Βάσεις Δεδομένων] Συμβάσεις για ονοματοδοσία πινάκων και πεδίων
Post by: Επικο Burger on November 02, 2016, 13:30:50 pm
UTR!
Βοηθάει πολύ παιδιά η σύμβαση του Nohponex!  ;)