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

Γρίφος στο σχεδιασμό βάσης δεδομένων...


we_will_rise

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

Καλησπέρα,

 

έχουμε τις οντότητες 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

 

Ακολουθούν στιγμιότυπα:

iymklj.jpg

 

 

ozml50.jpg

 

Ευχαρίστως να αλλάξω το design (να χρησιμοποιήσω διαφορετικά πεδία) αν απαιτείται...

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Πινακες InputAssets και OutputAssets ιεραρχίες ISA με τον Asset + πίνακες task_has_InputAssets, task_has_OutputAssets

 

Μπορείς να το αναλύσεις λίγο σε παρακαλώ;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Φαντάζομαι το project που φτιάχνεις είναι αντικειμενοστρεφές ε; Σκέψου οτι ο  πίνακας Asset είναι σα μια abstract κλάση δε μπορει να δημιουργήσει αντικείμενο απο μόνος του πρέπει να τον "σπάσεις" να τον κανονικοποιήσεις περαιτέρω.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ναι είναι αντικειμενοστραφές.. Την κανονικοποίηση όμως νομίζω πως την αναλαμβάνει το entity framework απ'τη στιγμή που θέτω πολλά προς πολλά σχέση (να φτιάξει τρίτο πίνακα) και πράγματι γίνεται αυτό. Αλλά όταν πάω να διαγράψω κάποιο task (και κατά συνέπεια τα asset του) κρασάρει επείδη foreign key constraints κλπ κλπ

 

Η σχέση που έχω θέσει στο foreign key InputAsset είναι ON UPDATE, ON DELETE CASCADE

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σε περίπτωση που δεν ακολουθήσεις το ER model μου ο περιορισμός είναι κάπως έτσι:

OutputAsset datatype foreign key references table(OutputAsset) on delete cascade

γιατι ζητάς τα OutputAsset να διαγράφονται.

Τι datatype έχεις τα InputAsset-OutputAsset; Σε τι γλώσσα γράφεις το project;

Επίσης τι project είναι άσκησης πανεπιστημίου  ή αληθινό project;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

<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

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...