Design-Frage Tabelle Submodul

Ich habe gerade folgendes Datenbank-Design vor mir:


 [  Modul  ] 1 ---- * [  Test   ]
      1                    1
      |                    |
      *                    *
 [Submodul ] 1 ---- * [ Subtest ]

Es gibt ein Modul, das in Submodule untergliedert ist.
Zu jedem Modul gehört mehrere Tests, wobei jeder Test für jedes Submodul einen entsprechenden Subtest hat.

Irgendwie hab ich das Gefühl, dass es unsauber ist. Denn Wenn ich ein Submodul einem anderen Modul zuordne, dann muss die Test <-> Subtest Hierarchie ja auch angepasst werden.

Findet ihr das Design so in Ordnung? Ist das akzeptabel? Bin mir gerade unsicher und wollte mal nachfragen. :smiley:

Weiss nicht ob es bei dir Möglich ist, aber was wenn ein SubModul auch ein Modul ist? SubTest würde damit auch überflüssig werden

sieht irgendwie nach klassischem Dilemma aus und ich bin bei Suche auf Begriffe ‘diamond-shaped sql relationships’ gekommen,
kann man mal anschauen, so richtig Lösungsweisheiten aber nicht erwarten


Thementitel übrigens bitte ein wenig spezieller, ‘Design-Frage’ sagt einem nix
(also schränkt schon auf <10% aller Themen ein, aber nicht auf ein einzelnes),
schon simples Stichwort ‘Submodul’ von mir dazu wird einen wiederkehrenden Leser in der Übersicht schnell erinnern lassen, was der Inhalt ist

[QUOTE=Unregistered]Weiss nicht ob es bei dir Möglich ist, aber was wenn ein SubModul auch ein Modul ist? SubTest würde damit auch überflüssig werden[/QUOTE]:twisted: Nein, es ist keine Vererbung sondern eine Beziehung.

[QUOTE=SlaterB;93937]sieht irgendwie nach klassischem Dilemma aus und ich bin bei Suche auf Begriffe ‘diamond-shaped sql relationships’ gekommen,
kann man mal anschauen, so richtig Lösungsweisheiten aber nicht erwarten[/QUOTE]“diamond” ist ein gutes Stichwort, danke =). Lösungen habe ich darunter allerdings noch keine gefunden.

[QUOTE=SlaterB;93937]Thementitel übrigens bitte ein wenig spezieller, ‘Design-Frage’ sagt einem nix
(also schränkt schon auf <10% aller Themen ein, aber nicht auf ein einzelnes),
schon simples Stichwort ‘Submodul’ von mir dazu wird einen wiederkehrenden Leser in der Übersicht schnell erinnern lassen, was der Inhalt ist[/QUOTE]Danke fürs ändern. Wobei “Diamond shape relation” auch nicht schlecht wäre.

Wenn die Submodule zu mehreren Modulen gehören macht es keinen Sinn die selbe Hirarchie in den Tests zu modulieren.

Warum?
Jedes Submodul muss für sich seine Tests bestehen. Das Hauptmodul ist nur in der Gesamtheit seiner Submodule gültig und sein Test muss seine Beziehung zu den Submodulen mit berücksichtigen.

bye
TT

Was heisst ein Submodul einem anderen Modul zuordnen? Ein Modul kann mehreren Submodulen zugeordnet werden, darum muss im Subtest angemerkt werden, für welches Supermodul und Supertest der Subtest ist.
So eine 2-stufige Hierarchie ist aber auch sehr seltsam. Wie erwäht würde man wohl üblicherweise Modul-Submodul in eine Entität mit Beziehung auf sich selber darstellen, weil man dadurch auch SubSubSubModule usw. darstellen kann. Dann braucht man wohl aber eine m:n Beziehung zwischen Test und Modul um die verschidenen beteiligten Module in einem Test aufzunehmen.

[QUOTE=Timothy_Truckle]Wenn die Submodule zu mehreren Modulen gehören macht es keinen Sinn die selbe Hirarchie in den Tests zu modulieren.[/QUOTE]Tun sie nicht. Ein Submodul ist immer nur einem Modul zugeordnet. Wie im Diagramm beschrieben.

[QUOTE=bERt0r;93953]So eine 2-stufige Hierarchie ist aber auch sehr seltsam. Wie erwäht würde man wohl üblicherweise Modul-Submodul in eine Entität mit Beziehung auf sich selber darstellen, weil man dadurch auch SubSubSubModule usw. darstellen kann. Dann braucht man wohl aber eine m:n Beziehung zwischen Test und Modul um die verschidenen beteiligten Module in einem Test aufzunehmen.[/QUOTE]Okay okay, ich sehe meine Bezeichnung ist vielleicht schlecht gewählt. Lass es mich umformulieren (Aus “Modul” wird “Prüfung”, aus “Test” wird “Result”):

 [  Prüfung ] 1 ---- * [  Result  ]
      1                    1
      |                    |
      *                    *
 [Subprüfung] 1 ---- * [ Subresult ]

Ich habe eine variable Anzahl von Prüfungen. Für diese können beliebige Subprüfungen angelegt werden. Nun möchte ich sowohl diese Prüfstruktur als auch die Ergebnisse dazu verwalten (und möglichst so abspeichern, dass ich schnell darauf zugreifen kann).

Dabei ist eine Subprüfung KEINE Prüfung im Sinne von Vererbung (auch wenn der Name das evtl. nahelegt). Die Anforderung Prüfungen beliebig tief zu schachteln besteht auch nicht.

neunmalklug: Prüfung und Resultat klingen nun so temporär, zeitlich feststehende Einzelereignisse,
da macht Verschiebung („Wenn ich ein Submodul einem anderen Modul zuordne“) nicht recht Sinn :wink:

[QUOTE=SlaterB]neunmalklug: Prüfung und Resultat klingen nun so temporär, zeitlich feststehende Einzelereignisse,
da macht Verschiebung (“Wenn ich ein Submodul einem anderen Modul zuordne”) nicht recht Sinn ;)[/QUOTE]Warum das nun temporär klingt leuchtet mir nicht ein.

Prüfung und Subprüfung beschreiben, welche Prüfungen es prinzipiell gibt. Result und Subresult sind dann die Ergebnisse eines Prüfdruchlaufs für ein Produkt.

Und wenn die Prüfstruktur nun geändert wird, kann es durchaus sein, dass eine Subprüfung einer neuen Prüfung zugeordnet ist, und seine Ergebnisse natürlich auch mitnehmen soll.

Frage: Macht die “Prüfung” mehr als die Subprüfungen zusammenzufassen?

Momentan stelle ich mir die Bezehung zwischen Prüfung und Subprüfung so vor wie zwischen Testsuite und UnitTest.

Dann wäre “Result” ein konkreter Testlauf mit den entsprechenden zu den einzelnen UnitTests gehörenden Testergebnissen in “Subresult”.

In dem Fall würde ich die Beziehungen auch so modellieren.

bye
TT