From 554448486a449095053ee3377be266967f471d31 Mon Sep 17 00:00:00 2001 From: GauthierWebDev Date: Tue, 22 Apr 2025 16:22:19 +0200 Subject: [PATCH] docs: Update MLD diagrams with new relationships and images --- app/pages/docs/merise/mld/+Page.mdx | 20 +++++++++----------- app/public/images/merise/mld-2.webp | Bin 0 -> 12986 bytes 2 files changed, 9 insertions(+), 11 deletions(-) create mode 100644 app/public/images/merise/mld-2.webp diff --git a/app/pages/docs/merise/mld/+Page.mdx b/app/pages/docs/merise/mld/+Page.mdx index 0e603ac..46e3a23 100644 --- a/app/pages/docs/merise/mld/+Page.mdx +++ b/app/pages/docs/merise/mld/+Page.mdx @@ -116,19 +116,17 @@ Dans notre cas, on a une relation **One to Many** entre **Événement** et l'hé Dans ce cas précis, on considère que l'héritage est une relation **One to Many**. C'est-à-dire : - - - **Événement** doit être spécialisé par **Concert** ou **Répétition** _(1,1)_ - - **Concert** peut spécialiser plusieurs **Événement** _(0,N)_ - - **Répétition** peut spécialiser plusieurs **Événement** _(0,N)_ + + - **Événement** peut être spécialisé par **Concert** ou **Répétition** _(**0,2** de manière implicite)_ + - **Concert** doit spécialiser un et un seul **Événement** _(**1,1** de manière implicite)_ + - **Répétition** doit spécialiser un et un seul **Événement** _(**1,1** de manière implicite)_ -- **Entité 1** doit avoir un et un seul **Entité 3** _(1,1)_ -- **Entité 3** peut avoir plusieurs **Entité 1** _(0,N)_ +On va donc ajouter une **clé étrangère** dans les tables **concert** et **rehearsal** qui va faire référence à la **clé primaire** de la table **event**. -On va donc ajouter une **clé étrangère** dans la table **Entité 1** qui va faire référence à la **clé primaire** de la table **Entité 3**. +![Exemple de MLD avec relation One to Many](/images/merise/mld-2.webp) -![Exemple de MLD avec relation One to Many](/images/merise/mld-basic-one-to-many.webp) - -Et là : tu remarqueras que la **clé étrangère** est en italique et est préfixée par un `#` ! -C'est un petit rappel pour nous indiquer que c'est une **clé étrangère**. +Et là : tu remarqueras que les **clés étrangères** sont en italique et sont préfixées par un `#` ! +On constate également que des flèches sont apparues entre les tables. +Ces flèches nous permettent de visualiser le sens de la relation entre les tables, en partant de la table contenant la **clé étrangère** vers la table contenant la **clé primaire**. \ No newline at end of file diff --git a/app/public/images/merise/mld-2.webp b/app/public/images/merise/mld-2.webp new file mode 100644 index 0000000000000000000000000000000000000000..465b8a7648237e9fea5ed7ce738f986a3795b1b0 GIT binary patch literal 12986 zcmV;rGDXc&Nk&GpG5`QqMM6+kP&go_G5`Q@cmSONDlGw00RR91C6&9%eed)ro_9Dq z1ty<`{=@qV`-}fO0%{YX3j#3;AdDfAyd0z1jbw|Fr&X?gRA$`segdfDhuI z%Km*m-T$F`0Dmg}f9wJLNBL*<53irJAM8Kw|G$3q{RDq4{;&Tp`|tYC{vSYp$-kig zoczH3@B0A#_V-8r0qR5i1Nq{|@{L{eb?T|W6R8}QG_KL|gc z|5^U$?A_l-YQKOU;{Of$Bk>Qyuj_x}zqWo4{OkA!;|J@%_kLh6#(#l-75psz<^Avc z7qp+?AA?)KUY~p$_}Af|_y6$U-~EdJ6#NzU1L%M755v!(58+?Izl;7Ne|`T)^N0A4 z;yvI$kbV;V0DlesAN=q7AL|G8FZh3H|BZhv{_pyS{omTR;{VRSrT>KeSpM_>Bk&LS zkMQs1pVWWBe^dUq|2O=n*w?BL)n8#x(U0sOT#4!n@3t29jh@up-XDVdXvjq2jqHVn z4{4DSN8gbM1}|f^Ec@OMEqYv$ruWlcnqH}4zx)LGGyASd5!(?PU$cjny<{rSNGr?} z3`GjgT6oi9Rz|QU&MY$^gKK2NuPu1fXqlI;>6pk5m`n3~%v)W@VB@yLn!2jS4Y=p# znl_Al%V9N4M#fJ0hbdQYFOjhVkl-qRVBpE)R3E}3D**S)4coKr>O~iaAp*hWuOyS% zAnZvV)F3SZ*Q)8<%u&##^Vqw`8f_C9iQT-z^yL9XbMFV%%xSbtX;iKx$mxjXSMOPC z)85%6 zkGPWswu)I(?d$iO8V##eXV}ya)54|B{F2YF%5AdtJ984MIT>T3{-R(*@3^2f93 zFiKES$&ksFiPt{t@|>5urzrIE2>rr)EghSkDsp2r0}aV;D{%X7@C&w6+0@ORMRu@6P2y7&Gylbif&HbrYXs zuF(bkm%fiftVgNvsvAjU!6tQ`C{yoc^S6-P;Z-2`IWK}iQaU1Nh?`|%eUAjNy)b$
  • x1z*<%WNsmwI9fSMS7BoEr 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

    5ye*zs3A=V$ zm|-nDqSOB9n`IJuGk*nv>-iCzkZu$SL2R|*ne;1e;Oqz;#OWa3F%sSzQW;y<&gk6B zl+wUv6qd4rT1WlAm;ogw?ir<{D#5`QT;Ka=C(%KT$^8pta|Ns1A*8t`>}?mL7IGzp zH7)jW0kkcD<_60C%0xfaS?bL!`Bo7B#UC1hwr5@a!fOp(!0G_I0G-OIG40LgBQS+= zfL>@Ms5QF#Ygtl*HePp)GME~dTt+K2iVmSIFOKE}<5^Np^m-^EEWx%fZIp4^f?dChjw96 ztI!curVjA{$Q{9HonRY>st~pdS+tt#1I2gDfbb1Ot$9^fUH^5t?k|T$(tM$i3ERJk zhW+e?S?yVKoG8;wuRE+9H&B7QX?nq-cI;7j1MvPev8+I2T{suwsf8|MGO43g@*?B- znysLB&?J^IC6U=@tPq%Fc3!obIMg`t4tJJEAjc0PY@gbqJJ?mdmb21e#8b^F)VRtB zfhp=ztt)koH7mb~3CD~{m!fTiYID07(uXS?#GB#UPB$e2)&ZoCOGJsgVMsQ2PEXi;ZpG8GL!JOb1{N2~AXx9f1{P(9W%KTE^4?l81r2X4=whs4{ydyn?n zdbT`59_I=v$0EvRX47>9jcvPx-7mlaoqUm6CxNLW0j$O*&?=#1CA;v(yshFnN`MZs zHTBSp)}Mo?{42sOek!!LTuE7MMutzbzjoByNYoc(sV%UTKjt%Kyngg_{N!B)4&gOp z=Vg5Tt=f;|o@PiX13EIb=6$p{m&cw+Jczf0yNfCg`Vz$ueIIvWKMBRK&_8<*rT9EL zS(9g|az< z)$S0|T$6S-i_wcY62h96`#6Bw7QgcYWq)NNAL^|2W|n-b2!G;_jX>KouKwXQhOXds z09}AiyJsX?1BJI0wz4NI;g6`Dl{P?nd+a{_U!sV90p z6Fx$1l!NmUqBS<8aWnJ5bBB5M89!-)Z&L6P2xxV1I2({SJr;cwveYluCTf8R#q{x( zobRP-s!vN@izL$%n)?9q0}N9M$j{DK`T6gp8LE>67~P{s)OK_PoFhF?r`u0>VmnJu zb*}FFgDm55*Q!#gvEy$%B3z&`L2-$V(0&13=hCzj1eY^|V-C*ng)LwTddECf@j@k5 z{*)lybv4w9zP5Rg-bJ|_G%+C<2?`czY5TcVBjm~RjKt%V9^h|>P!Kop5mf<2&5+lB zkpVgs9m9e}9Rmhru={uplTFnqf5_8hjj~eBman@z6ZG>j!j)LpEOzSfDM@NAe2tN7 zI#z!Xviujspxppmk11|J6X3nY(y6j_a76btP_>p9X~-Z%#tUNS4y{`}T`Zm0;mHq6 z!Yg~_wIo((x_t5GK_ta6m`={MiXR`_+aWDUoe?^+{POxEYxwmX*SSC1nNtWkMe3guPk(!#+%JXaoos8 zHm!7XaC6`p6r&et%D_4#)N^+yDz08vq3|v8iJP?fRZ%6JCCxbS8PHh$ggY+-sp1g{y)YIJlFTs3sb!qFb zUd%9>p&(8^Ouk1gbUOD!AQbgSK%I3idCn!B<<2{L&BNrtp3}1qh3Hh5j89F>C%5n1 z>A;ZN+*cc@d3_pCS*bq>)UjvcqP6@j{MClp-vXG;`43=CA+WXCqRRRrXl>AQjTy)b z9UGOewQpn%a3G6bGYPxR1+6J>$W2UQl&PZ*plplkRt&5lNr=11mFjUJQi?e>soI;= z)JH3M#Epj}c{B*c#-XRl`w!S-YLZN=?r#_^%d) zBrVhZyPnNi>Q88(-d3dkri2Bi6g1ji2*T;~B&V~9ZUv$4S^LeJ!IiN5F9$$TcIXJe z!17@|8%*Ge8Hsq7k0=VQB6A2gRf+R-#v;#!JWIAOK?h)!0!H~AmkVFEwOBB9b@!LT z8k0o2Xm7lg{NRW0YK@59yO% zs3+(QiT*CVl2I;PK(&oSmNulA`;KIiC`&r0B9H%M20|x>oSa)KvdHY3F`o(sltjcy zo%mm(HO*M6+)GC25$HD{&+!^XGXdC^SShp7Xgw32m+PQOjCS73s*(@=^P0d&CrkHfn)n02)NORFHCKE3WC$;$SCJ{LIPd z$Ug?t44oCtp5bq*CbSW}1tLzfKVvK~(kJ&jKKHZOKvkGqJv zrb2L>y5(FWOBOs$M{ybmF;S415ZEeZgSRKberq6`8`h}f+2s5P z7D}i`7%Ia+67)jGBn(oa3L279l?64iO0R#{9GtKETMcqKf|(ZZLPVn}%bl`_Fv)Qn z%*^MaR%d>^=Dp8s@Wd-o$?bSM^VdtUe>s+J1eO_jp{KG7c(BnVeVU+EH^r?}HEGd@xV1rEqOJtRKztwC)T&$RTg}D*!Zwg782d8O|QA zF7Pei*t9dMe!pIZ$o0X-pI^C?6L>&bc^DU7G#rL5O|8Y>#+@)|0afh$3zw9}dIsW7 z#poL=xQCzz8;tsgl(gLHBr0hvTkGc)@G4`9m@!>6M>?>n`=~72)d&XR-5NLyAfArI zfb|ND_@|ffeq8e8-;`?MD%(M2L60{M*Vjl+FXRx{2euJZ;%4Rk#0F=hqj*OR4+U>u zIwce@PVKUCKIYhvE|yjn|u9-hp`{Xx233 z;8%ZeEi?I5@*9FvKNHcJ@$KZe)Tn_57S$;!5=^IB1|8lji1QCFEg(Vh0{{RQXCw;W zt)RoVioW1$=*9cUoPP9z($1;g1LF=PRwT9UYf$37Jgfe}DK}hN$E44VO{-{x^ZywM z)Qhks+Rf2f(m!$sqU)`|IfX>1Jrx?ChWVB4M_de?kY*kwq8$Dulb=*q4KMnmf;R?C zQA3*d^(Hguu_D&^tX$k$Ci%?i>iH_r5}@`t_}s$V8r_XVVXo?)L!Z)@ajS6B$taCr zc$QQ^WE(&L1zG++S*Kt(OA%Vfc$YM4-zj11O_qznDyN%X-8dmS&*5L2EXFX}Nj1Kx z-Y0etjVJ6JpfPgp#)GU@y`U}WD<~}pV=JqIBlM!}{Gb3W{ge41FdFf=$J`ud3fw|} zFu-vW(y#=AJ&7N9(rEKO;_-c4*dV}xN`ulrSfA~guJgFfgLFfzEnafaI2dOn5ziFL z(s~$>P0yALsC_n)C;spo^6B-3b*L>AfS9=?@LdZZ<&Q|NyGre|XwT<>Lt*oh2yOeSTk_f@Ir;Kozc&Z9-Bh-##<&8GNdzHCM*19ik^@*Sl*eQRlX0k z5$OcVKy$$}&-!Gb4A-iK1MFW$4pXm)r50^Z+ySkmXjRKcDe~cP$b_^8Y3TYp48e?` z!geppCdPc3J(OS}y^Q5{t5<~Lt0h@NAV(G*jv!l;McZ|VzrQ*ytSxP{S?XPvN%B_a zD#u{zVK-mcU(M}${~0M6?&TF1wxMJ@ZWK`;m+b&RPv{rSKq5|(WP!;!6ATl3A^(0pAKdx+D^ZHX7SFYV`V4Guo7^ zSPmnSx%eARYt65ffSPtnkRZE5}7WZno2d#PS(%Uvb_z)%T2R&${lzS zV)UO~G2)C8xmW?SsoC9Y-k+3e1>Wl?GYRdfO&n+t@Bl{{z@@l}vXJ$v(Hz|(x^z7{ zX|Wj|i+Rv`vBeJ1zW;#A$;Adf42bC+v(7~r>VIvB5VVVGt#KtD#5LV53bMU!V$4y_vIZkxP<_q76IS?I9ez^9)HsF;(CwUN$R} zM3Q*qoo2I`-{=p){W(>xoF#qGt;<%8QUvq1dp{{%52a}Tk{h?fb>ehH;n;7#HB% zyM~*|;hW`@2bw@Sa@%`kIpvSBZ2X)eY9cvwU3KNT3qji0@}4WTy8=odz>MF-aF}FCtvW0a-4B)Ma<7k~^fZ$__3# z-OXn+<9`fTeZX#0HHgDZMNen!NV4wNBbIh%?3BW+gSNFS@OUSQN+!WHxdZX3Ay8~93-|TDwYi-sYn=*?prWAA^cRT+sAK09cN6xEw6Dww?@K2 z3AWfn*(czY{cR}f9IE((FhsTh7oGfa=GTn9LXpMZ0aXN*St26Y^xBTvb2`%oPQ3Vc8tUZqhSong@ z_d!s!NXl5wUD3cZS<}C|Z6vjpbCVtmSVbvIK zmc+i7$TigJAB^-Ebv>9yd=H6D12h~KcFLXInFl4AAqvnAx5I=HFCNI*`usPi8UQ1H z@hH77)pC-Y)@A7lq{o%QTe7=oCrB7EfS*Y0wJVw7Q6rkg(-kaI)*mr+&LejSmk}z) z;we3|+fP+J5H-);bkvT_FO85*1P$lz7-Th(Cx~WqP2c?B8<5!G`a@@Lf1T^G^q^T9 z%D8AEgTD{rPSG%wTrGOnyb_N)1qQ`Zj6n&)=c2O?kbZMRs%SJbYCOIqh`l*7sT?6U wXn85FOHJKIIq}v7$S*e2-b}YH9zkFgpXkO^_meHlhmcqR02v>5hyVZp0O1;50ssI2 literal 0 HcmV?d00001