we_will_rise Δημοσ. 27 Αυγούστου 2013 Δημοσ. 27 Αυγούστου 2013 Καλησπέρα, έχουμε τις οντότητες Task και Asset, όπου Task είναι ένα οποιοδήποτε task (πχ. ftp task, rename task, copy task, κλπ) και Asset είναι ένα οποιοδήποτε αρχείο (το μόνο του πεδίου είναι το path του αρχείου). Θέλω: 1 task να έχει πολλά Assets ως Input 1 task να έχει πολλά Assets ως Output 1 Asset να έχει 1 task ως ParentTask (αυτό του οποίου είναι output, που το δημιούργησε δηλαδή) 1 Asset να έχει πολλά task ως UsedByTasks (τα task στα οποία είναι input) Για να το θέσω πιο απλά, ένα task έχει πολλά input και πολλά output, αλλά ένα asset δημιουργείται από μόνο ένα task ενώ μπορεί να είναι input σε πολλά. Η ερώτηση είναι: πως πρέπει να θέσω τα restrictions, ώστε κάθε φορά που διαγράφω ένα task, να διαγράφονται τα assets που είχε ως output ??? Η βάση σχεδιάζετε σε Entity Framework και τρέχει σε MySQL Ακολουθούν στιγμιότυπα: Ευχαρίστως να αλλάξω το design (να χρησιμοποιήσω διαφορετικά πεδία) αν απαιτείται...
mad-proffessor Δημοσ. 27 Αυγούστου 2013 Δημοσ. 27 Αυγούστου 2013 Πινακες InputAssets και OutputAssets ιεραρχίες ISA με τον Asset + πίνακες task_has_InputAssets, task_has_OutputAssets
we_will_rise Δημοσ. 27 Αυγούστου 2013 Μέλος Δημοσ. 27 Αυγούστου 2013 Πινακες InputAssets και OutputAssets ιεραρχίες ISA με τον Asset + πίνακες task_has_InputAssets, task_has_OutputAssets Μπορείς να το αναλύσεις λίγο σε παρακαλώ;
mad-proffessor Δημοσ. 27 Αυγούστου 2013 Δημοσ. 27 Αυγούστου 2013 Φαντάζομαι το project που φτιάχνεις είναι αντικειμενοστρεφές ε; Σκέψου οτι ο πίνακας Asset είναι σα μια abstract κλάση δε μπορει να δημιουργήσει αντικείμενο απο μόνος του πρέπει να τον "σπάσεις" να τον κανονικοποιήσεις περαιτέρω.
we_will_rise Δημοσ. 27 Αυγούστου 2013 Μέλος Δημοσ. 27 Αυγούστου 2013 Ναι είναι αντικειμενοστραφές.. Την κανονικοποίηση όμως νομίζω πως την αναλαμβάνει το entity framework απ'τη στιγμή που θέτω πολλά προς πολλά σχέση (να φτιάξει τρίτο πίνακα) και πράγματι γίνεται αυτό. Αλλά όταν πάω να διαγράψω κάποιο task (και κατά συνέπεια τα asset του) κρασάρει επείδη foreign key constraints κλπ κλπ Η σχέση που έχω θέσει στο foreign key InputAsset είναι ON UPDATE, ON DELETE CASCADE
mad-proffessor Δημοσ. 28 Αυγούστου 2013 Δημοσ. 28 Αυγούστου 2013 Σε περίπτωση που δεν ακολουθήσεις το ER model μου ο περιορισμός είναι κάπως έτσι: OutputAsset datatype foreign key references table(OutputAsset) on delete cascade γιατι ζητάς τα OutputAsset να διαγράφονται. Τι datatype έχεις τα InputAsset-OutputAsset; Σε τι γλώσσα γράφεις το project; Επίσης τι project είναι άσκησης πανεπιστημίου ή αληθινό project;
we_will_rise Δημοσ. 29 Αυγούστου 2013 Μέλος Δημοσ. 29 Αυγούστου 2013 <p>Σε περίπτωση που δεν ακολουθήσεις το ER model μου ο περιορισμός είναι κάπως έτσι:</p> <p>OutputAsset datatype foreign key references table(OutputAsset) on delete cascade</p> <p>γιατι ζητάς τα OutputAsset να διαγράφονται.</p> <p>Τι datatype έχεις τα InputAsset-OutputAsset; Σε τι γλώσσα γράφεις το project;</p> <p>Επίσης τι project είναι άσκησης πανεπιστημίου ή αληθινό project;</p> Tα inputAsset & outputAsset είναι στον πίνακα Task ως associations. Δεν είναι scalar properties! Αυτο ακριβώς που είπες το EF δεν το δέχεται σε σχέση πολλά προς πολλά. Είναι κανονικό project και γραφουμε C# σε mvs 2012 Sent from my iPhone using Insomnia
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα