Γεια σας!
Θελω να σχεδιάσω μια βαση για μια εφαρμογή που φτιάχνω και έχω κάποιες αμφιβολίες για το σχεδιασμό της....
Αφορά εργαστηριακές εξετάσεις
Συνοπτικά θέλω
-Να υπάρχουν κάποιες κατηγορίες(χωρις υποκατηγορίες)
-Να υπάρχουν κάποιες (μεταβλητες-τιμες) πχ Χοληστερίνη, Λευκα αιμοσφαίρια κτλ αυτα δλδ που δειχνουμε σε κάθε εξεταση η οποία θα ανήκει σε μια κατηγορία
-Θα υπάρχουν φυλλα Εξετάσεων... Δηλαδη ενα φυλλο εξετάσεων θα περιλαμβάνει κάποιο υποσύνολο απο τις παραπάνω τιμές...
-Θα υπάρχει ενας πινακας με κανονικές τιμές...
-Θα υπάρχει ενας πινακας που θα αποθηκεύει τις τιμές των εξετάσεων του πελάτη
Εχοντας υποψην οτι... ολα μπορουν να επεκταθουν απο το χρηστη:
Πινακες
Κατηγορίες
id
onomasia
...
...
Πεδία
id
id_katigorias
onomasia
monades metrisis
τύπος_δεδομενων(string,plain object,double ktl)
...
...
Φύλλα Εξετάσεων
id
id_katigorias
onomasia
....
...
..
Φυλλα εξετάσεων - Πεδία
id_pediou
id_fulou
Κανονικές Τιμές
id_pediou
typos
min
max
...
...
Και εδώ έρχεται το ερώτημα...Πως να αποθηκευτουν οι τιμές κάποιας εξετασης ενός πελάτη που μπορει να περιέχει απροσδιοριστα πεδια απο πολλα φύλλα εξετάσεων;
Μια λυση που σκεφτηκα αρχικα ήταν να φτιαξω ενα πινακα και καθε γραμμη να ειχε μια εξεταση για ενα πελάτη...Και τα περιεχομενα να ηταν μέσα σε ενα hashmap....
Απο την μια ειδα οτι αυτο δημιουργει άλλα προβληματα... και λυνει ισως κάποια άλλα...
Εστω δλδ haspmap mapa
Θα ειναι του στυλ mapa("id_fulou.id_pediou")=....η τιμή του.... που μπορει να ειναι string,double Η συνθετο αντικειμενο....
Ομως αυτο πιστευω πως θα ειχε προβληματα οπως
Οταν θελω να δω πια φυλλα περιέχει η εξεταση ευκολα
Οταν το συστημα διαγνώσεων προσπαθεί να βρει τα πεδια δεν θα ειναι ευκολο
Δε μπορω να σκεφτω κάτι αλλο
Η άλλη λύση ειναι να γινει με ενα Ταβλε της μορφής
Εξετάσεις
id
pelatis id
imerominia
...
...
Εξετάσεις_Pedia
id_Exetasis
id_pedio
id_fullo
timi(Λογικα θα πρέπει να ειναι τυπου blob για να μπορει να ειναι ολα)
Ο προβληματισμός μου ειναι τι ειναι καλύτερο... Να αποφυγω το Εξετάσεις πεδία
και αντι αυτου να μπει μια στηλη στο Εξετάσης τύπου blob και να εχει ενα haspmap;
Ευχαριστώ για το χρόνο σας
Εμφάνιση 1-6 από 6
-
19-02-10, 02:15 Βαση δεδομένων - Σχεδιασμός #1
-
19-02-10, 11:28 Απάντηση: Βαση δεδομένων - Σχεδιασμός #2
Ρίχνω μια ιδέα για να κάνουμε την αρχή και βλέπουμε.
ΚατηγορίαΠεδιων(catId,name)
Πεδίο(flId,catId,name,measure,normalMax,normalMin)
Πελάτης(clId,name, .......)
Εξέταση(exId,clId,date,price,.....)
ΠεδίαΕξέτασης(exId,flId,value)εκτός από ροζ υπάρχουν και άλλα χρώματα??
-
19-02-10, 12:25 Απάντηση: Βαση δεδομένων - Σχεδιασμός #3
Φιλε μου τι διαφορά έχει αυτο που έγραψες απο το δικό μου;
Θες να πεις οτι αποκλείουμε τη λύση του hashmap;
Και οτι καταργείς τα φύλλα;
Απλα τα θεωρω μάλλον χρησιμα απο οτι εχω δει διοτι πχ στη κατηγορία βιοχημικες εχεις 150 τιμές πχ...
Δεν νομιζω πως ο καθε πελάτης πληρώνει για όλες αυτές!
Απλα φοβάμε οτι πχ αν ο πελάτης εχει 50 τιμές... Και εστω οτι ολοι εχουν 50 τιμές με 10 πελάτες γινεται 500....Φοβάμε μήπως παραμεγαλώσει το table..Η δεν πειράζει;
-
19-02-10, 17:33 Απάντηση: Βαση δεδομένων - Σχεδιασμός #4
Οι διαφορές είναι σε κάποιες σημαντικές λεπτομέρειες. Η πρώτη είναι αυτή που αναφέρεις, η δεύτερη είναι ότι δεν χρησιμοποιώ πουθενά data types μεγάλου μεγέθους. ένα απλό float αρκεί για τις μετρήσεις. Ο πίνακας που θα μεγαλώσει έχει 4 πεδία εκ των οποίων τα 3 είναι int και 1 είναι float άρα μιλάμε για 4*32b = 128b = 16B
Άρα θέμα μεγέθους δεν υπάρχει, χωράει χαλαρά αρκετά Μ εγγραφών.
Τα φύλλα τι ακριβώς κάνουν; εννοείς προεπιλεγμένες ομάδες πεδίων ανά εξέταση; έχει ενδιαφέρον.
Γενικότερα είναι καλύτερα να έχεις έναν πίνακα με λίγα πεδία και πολλές εγγραφές παρά έναν με πολλά πεδία και λίγες εγγραφές γεμάτες όμως με null στα μη χρησιμοποιούμενα πεδία.εκτός από ροζ υπάρχουν και άλλα χρώματα??
-
19-02-10, 17:49 Απάντηση: Βαση δεδομένων - Σχεδιασμός #5
μια πρώτη προσπάθεια. Οπου id σε κάθε table ειναι το δικό του surrogate key
table customer { id, name, telephone, ... }
table categories {id, name }
table exetasi { id, name, min-value, max-value, category, {categories..} }
table filo_exetasis { id, customer.id, date }
table filo_exetasis_lines { filo_exetasis.id,line,value }
όπου υπογράμμιση, primary key.
QoS: Τι είναι τούτο το πράγμα; Ευρυζωνικά: Μύθοι και πραγματικότητα Οδηγίες Εγκατάστασης Oracle 10G σε Linux (RHEL4)Περι αλόγιστης χρήσης Ιντερνετ
Ikariam.gr anon@AnonCity Guzoos@76:12
-
19-02-10, 20:11 Απάντηση: Βαση δεδομένων - Σχεδιασμός #6
Τα φύλλα τι ακριβώς κάνουν; εννοείς προεπιλεγμένες ομάδες πεδίων ανά εξέταση; έχει ενδιαφέρον.
Ναι αυτο...
Eπειδη μαλλον δεν εγινα απολυτως κατανοητός....
ΚατηγορίαΠεδιων(catId,name) (Κατηγορία δες το και σαν τμήμα,(Αιμοτολογικό,Ανοσολογικό κτλ))
Πεδίο(flId,catId,name,measure,normalMax,normalMin)
(Εδω είναι πεδίο που ανήκει σε καποια κατηγορία... Ειναι πχ. λευκα αιμοσφαίρια κτλ κτλ)
Πελάτης(clId,name, .......)
οκ
Εξέταση(exId,clId,date,price,.....)
οκ
Απλα δεν έχεις κάνει πίνακα για τα φύλλα δηλαδη για προκαθορισμένα ΣΕΤ εξετάσεων...
ΠεδίαΕξέτασης(exId,flId,value)
Εδω για να ξέρουμε και σε πιο σετ ανήκει το flid γιατι μπορει να ανήκει σε πάνω απο ένα πχ..
Checkup ηλικίας <20 ,
Checkup ηλικίας <50 κτλ
αρα 1 ακόμη collumn σωστά;
Επισης οπως ειπα το value δεν ειναι πάντα float τύπου...
Και δε ξερω αν ειναι καλύτερα να βαλω blob η να έχω πολλους πίνακες
Παρόμοια Θέματα
-
Οργάνωση δεδομένων σε βάση δεδομένων
Από xp1988 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 10Τελευταίο Μήνυμα: 27-05-09, 13:45 -
βαση δεδομενων ....accbd...... help
Από eqvus στο φόρουμ Unix - LinuxΜηνύματα: 2Τελευταίο Μήνυμα: 27-06-08, 22:05 -
μετατροπή μιας σχεσιακής βάσης δεδομένων σε berkeley xml βάση δεδομένων
Από malesina στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 1Τελευταίο Μήνυμα: 17-04-08, 13:09 -
βαση δεδομενων με javascript?
Από ironwiller στο φόρουμ Web authoring, development & web designΜηνύματα: 3Τελευταίο Μήνυμα: 27-11-07, 16:47 -
Βαση δεδομενων ports
Από dreadlord στο φόρουμ ADSL, VDSL, FTTH & Broadband Hardware, routers, modems, κλπΜηνύματα: 2Τελευταίο Μήνυμα: 03-11-04, 20:31
Bookmarks