From f92ad68d32db3e3c3b419b1eeea337a175f4567f Mon Sep 17 00:00:00 2001 From: ridethepig Date: Wed, 9 Nov 2022 15:44:48 +0800 Subject: [PATCH] design ok --- .gitignore | 3 ++ DBBigWorkDesign.drawio | 2 +- 表设计.xlsx | Bin 0 -> 50352 bytes 设计文档.md | 97 +++++++++++++++++++++++++++++++++++++++-- 4 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 表设计.xlsx diff --git a/.gitignore b/.gitignore index 59beec4..8a4e0e5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ *.bkp *.swap *.o +*.dtmp +*.tmp +$* \ No newline at end of file diff --git a/DBBigWorkDesign.drawio b/DBBigWorkDesign.drawio index 53fa997..0048032 100644 --- a/DBBigWorkDesign.drawio +++ b/DBBigWorkDesign.drawio @@ -1 +1 @@ -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 \ No newline at end of file +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 \ No newline at end of file diff --git a/表设计.xlsx b/表设计.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d295563ff8e0b83963bb876acf295b3821b92c02 GIT binary patch literal 50352 zcmeFZWl)@J);5Y0+zIaPuEE_cxCM82cXxLU?oM!bmjrhY7Tn=$vS*LHGjq<=`EjbI z-j5&MMbUIUy?R};sq0Ra&L>AZ4rr2qo~O+Wzwp#XgV(G;?=b~Lhf z)cx#cYviC!=W1n1kPikzkqZO@c>VwV`ClA?@#GcRJ_gv}^ElTKs%F!PK|R=pXc+hu z--ZjIJi7%`E93!)rsg5ImB49?bhfbd26N=MHxt!xp7yi_Ark^*5~Iel%phqRpn-|Qds7Z|*Y3ctw8r@)mkWyeI)ar9PIxrusC4t;_sr6T zst?jK0@==OUTNG?UrL3df-&IEbLDN&NbekUUWwdTRY;n353tImDbA@AsP*L^tZxt! zqN$-10-PT-CuS)hfg}x}_??m-zbrCF`h}th5wg2Ol-RP*8L3c;i89bc4WY=sd<-!@ zxT{FElY8d&pNaic&L2~@zq;2Rk54zQla*1pBH~OdL!+QUZJ@fU`Mjf-c=4T^K|Dbh zbvP7&qd^>YiQYhC7jWP^5RJ=n>nmV z#DaX!G$l4fntS7;(ZF&smgUyZ4%Jsa{A5M(AZ`B)l6Xv{Eq1_P8X$pyuz)@Q zyIRu!ffE-SdkcLV8;f_@`x7(30PO?3_J8+Jd(xPB9|NMuUC?X5OlR^b$z;IrQlem! z)gy2(9$zReX4K=a4HpKMQo<5-3@cdTJnj&Wkc-z}YmGhR7?uslH1NdezN1bvC6YCF zb7OPC;HHIChUI7<*nsMUZtrV+f>boz1D)m!_^F`5%PUV^G7WTu$QkE(C|W5Sj|vKB zKewkmsH=1*P)N2sl=swy8Qao;F%S7a<^*SRy;WC^)s1YaAK>Fsczgwao86CO^(9p> zqpI=Oj*g9C&xj4h?1Dp~-!JIVz@k{MAgsTTWZ`t48HaWVVTJiPzU&}tVIn(H!MT)I zSlbl|8{Js`R&jbRPG*`>1<_5~r-1sdY2l&n17w@Icj-&BS1xbs3wi<}Q*BLa`8F-b_lYZ1tK4uoQdPZ=F5$(eRO`yt2Oi)#- zXgh`qzAM;<)Y$O4klw?-Jtya2n&iz?SAq4xv;*M$$K12zuf#%Phe99NiWxZ&ppG*; z_nAT#3`ATOC$xb zkP2IJkHnqyMt@xQf!G|^Ou#I%)*7Xi@$wEoL{n30$2TD|BibV%ByDkYnn_6^4k{B; zREOrGs6b6`tylAX*9zeo!JyD;DSm6>ES6WxrT>K{8V_bTvx*c)NlP#Klf~70QAGk) z!IceeE>c3lbVFUj$c$I654+A4{_1-|CS1RyEcFiit|T%hD6W4EaqE*04&vrmfKI%N zKlQIScXv=TH-hR|l32mk>Me_5kh*>4UQiaFE8?**nZCK2klJ8!^dIfR2&_ZlRW&=J z6!2>~o3JkafpIE^PtQ_^ap8nZ%%`eiYOP)?j8uYn7zia{FB%06r3Ho)yow;DAk5e7RCfVx3? zXAvFEOsfdOS>~M~G-=zxT0OPHo%HwxbT~z7GYUX9y>_GHuh^$EWW!e=VWql!XD=XX zxNdd%FfF)4xebN4)Z7wksy|vu3V(n9`LAx#w4V??jQ~2XFX~0wI z`1tE}H7tJjlYh1u4qvtz$AcYr8_(P=S^7lIwyb!Ld)rtr4maG97yQuMzf>R^z9iZ! z02N5W0s&$CjS3u0jf@-}=zl*kzKc+1f>cZf18UG+(jz|2d4L~3nE>Hec*@h0GTw#g z7BFhIqNWiccDskNC+kVwJ;q6$wQXW~hOQ{M6Elq14(9t#pJfvb~mqUmtRgMS%I<%@|-xW+RvE=Gfnv&KBmHJWR^yKU)?ERV_Hz( z{QgaX8a-qy(u_{ioy_nSFSyi#@{5&lb>59hDEI)+qf6AuYEaPt568r5)j3)3Av_Xx zX#ro9ykx_0c5`K|=hvEZgG5__X!L4~^CJ;soGyh~MYSF2Q&5un`h%6*kCr{(zQtQV zb-|#Jj`!-oL*Dy`Zx~ZbR#)7Evw0C)ItRh!j2U-S*gqZ^sG%#M^2zKEaHWwLg<--( zI5K%qebhs$I*>?zEi5-8y$B4c3Ju~a#?L>Q12rn&OU=nahCfr5`Ly8)3f>E9E}RH^ zv5HZTjn2CxA1cgFhY_mf+7beiI7*q`6Z(cH5{yNSVUMG~rb;`BjECF{o~SP|;?05dM%AO-Or@)`U4H3p++*IR1pjW4Wlvmv%v1L8;> zSE6r^e2kA+cL0wL5QE=}P?4k%?azQ1TrKDhln3s}%3tSujT1GLR-A>9kYFZQ7&^>B+%Wb~ zkSHV&HmrkKpL8M(<(#2dNV2Fis|A$FB-ByFw&8S;=wi-UYWyNYE&4>7z;q9ONK$_i z@>I0r?6z!{kaSFi`>vceqXaIldMy{!h9*BEp1g!clL#oHE;MOn3s@o$$BfpTex>mc zQH{x)_3Hp)u3-&&#I!~zP{ja|EDT<(Ug)pK9zF@&O=nszFcp{~nPCF@u>qonk3>Ko zwV_x3kcJpUp7dZkx97j|g}$`d&bwO#v|BQw+tCK61}JZG;{JXM8T=A?)wx^b8Nw3b zXqih@1_T@!f{*^PNRl=JcVxBD-x}(_IaOiH!h47(!-t35uP6 zSt)6xD=e2{`YIgcRgIQq4`o!Xp}|8Vwyg=&&;6vDX5X4gs{Prn4>d^E3m zC+Lu5DvjC?4@8wY{$wwYQToPH)vMB<1MXQw`K-FXFYSNUbJmC38kAr_Kyz^amMED1 zAPN}(Q6L7NzZ1nq527Flg<+Bv+e*i0WxlCsOn)?NrIm+8m6vl|@dRzk6jRd3p+)a? z%x8CJm-+CM9xk)x_(45ksD|Fpb!&;&PtD4)3frG-sH>!5NWCD$&iBtZCg2CHwLv$b zkTq0i2cN3GjE6z6xa1w>4x}xsP4K{<2DeOtR0qpw)GDCLr0&-hk_+nD=%uzMgCvWd zur$1a)#iR1de$c9b}2HmgOPP;TXXVbXcg+$pgPKdq#)HmmCN{{)~TX)$B5?upo$!% zrd=9l&o0G3s6vROUTJb+?|{ZcOG|v=W+O0c2tXCL0II<1pe^L+s1c>F*^R0h0srwv zr+H$iJj++^*%BImLikPBP=Y}=o@F@Yfhd)1M(C5a(cKcsi_}5A_ZO;j4mJAC zaAY=Kj1;S*+c>y3<|Edql0qJcqrH`u5Qe6@j5C8T@^fz_Ew`EQ9S1|;-GoaK$ZpO$ zv<^l(#uK(AK4*$kDmV~*74Cx)2ty$!A=Qwzq?obOKMoa^aM-VNNu47UsmRW1u|)U@ zOJpn#y`Zg0;`Y-Tg!z>UkDD7j7I(OJF?#9)pU`eebz8d%S3&5W)+F#Qh9PqbD0MY$ zzC~J9UaAZMkc^!$(5yy3T`tV{eFw7A&&%YDS;7WU5FbAXLRLW~bf}DNU=R>l^jfUt zZrIm#kWgJF#=@rd)kOHbEM!|`WeB$=%7{Rj3n1fBqRG!+AOP?8NQ$Dg;*vT`I8DhB zM;#C=+mlj7yB$r&+qb(Zjh!mMi4*5tEgaoCMq3>R?}ycsr-iv|6h)J7k+?O|e~?BI z@eLi^SRPfZK$jY+(Ism0vc7Hs|DgF-f$ z8kB_t{|he3v!alrt0taZ?NMNH7X;fog|?}V?kMMwE~03L32NIY9a24epvMx62h2=| zwEp>cH?OR$%aO5~H2YU>xSFYCYh*+*rcuPhVa`V=k2^ZD09@5U%iw<|?Xd5CEco5M6a|~o4LDUFTf^}Oo#-t#^b><0v=axR6#IX;ebs#RQ)RlsXO>Nb1RKZ25zpnTk&>Sq6e$bn96iRtZ=eyeh%HzPTbAO;k*>ME#UKdXXu@TMEI-Nq=k;< zFJPW??IIPvGL)6y*(;OW)rminE7%bg3QvTwl48jkCUV#j6$_6+2|$g6MG+$dJcuT} zo@@w?!OiLTo~=-lKpj+kufqbmM0RUNccf4FPs({c^9JR}3qSoXi=

lkZDvgCVq{GMetZp(R(fwrJoo307j7~RvRBBC=fLr zCDK#!17a~kD$g5$i4XapYrHK|dE`mY1%}lSkT60}An>h&X1huC3xx8fbi_vz1SD^P z(C`UlD#s6>4H2kd1*t$n6s(Yni5LQ?IC^gp1|@lkpDPhLe-^TKk#hy!3U6YM6VS_H zMFif-0oYBw{}jKSz%BIt;HE*dHv&GdP<`i>ad>PYK}5?8gt^3@nA36$-GDR)=@pfv zaEYE!EM$6iGtDA2#Uw%`Gou@}b?bveKyCcghpzZRne8|3=fC;M|01S2ol}3h16;Yw zzpr>${?W+X@~L$OJc#%D3#u#$o875YE}tzi3f1Tvm~-ovJ#KKvlC>$)%}5U7VLYU{ zT^t|HDNxrz9v7HNVTB-(PD3k=I4jNO@Tv3=lTKbWZI3p{&!TWVvUuDx@nEz$!TFMl zn`%p7pSSrll4DH+>X!g?=EmA|56?#IeJ+@GEH<-&c#3p}2_vbgz~1#f1}9o@ny5uH z(-%yA0lS!&Hc{s@!MSa`%zfv!V-P*ZkkH1@vpEp&Muz^kktun?i1|h!7D3!Y-jRse zx$*h0M#f>P`O+bonXalp^TkDP8>zk~NSLp&{>(FVT{?$U-Z(!3Dm()e zu%hcJqEHG#v#vzDUgTiC;GX`dc7O9tMUoVNYES`G)9(ArCH+I}=+rSkD&^M#XbLMA zUF;#>a|fmjHy12~jC}sXwiMhM#ypU7m5mq_KNDFDT$;#f-N}Uv9d7NSM3r zYd>c=db}Ev{pZj%oJCwI88uA=^dW)>>>=3JybpE(wf>U@YB)Y#H*bJB z&|iwr|01&Zq{BH?0w4=YK&SNIv`1L~kt}{!J)U6kxv|Q#R!tt|WzKgesf22^jE!0J z%73eR3=krp$J_63PPR(WmI9n+8%U%2LXk~_N)6j6kE(OZzX*n1wO4*)qD{O8i{>5Y z^GU~zTx*5sMj>gaDu}w%?ny;~GX(%&AmVq`)42@ikOi&-m(idvfx0K{ur$k@S98Z8 ztt|x{^SkPSeXn|6->aTHGdqNTsCwi;6On1d4`eK8bgAdPBE_^~zYfH0Cg_a9ZrD(n zQC8R$-4ezxwH#8|%?OfqDv&;#*KoR#oi6C3_<#>*~Fn*A2+3 zkiI0)MhLQ$bkEy4ts3ChrKu<|;WGNh5Mo2X9yPSW z1ib^Bbn}CvY>t@2FS~zPkIRt?P~}VtkGE@0XLE7!{U;B?=V7;IH zY#R372rIbT#Qar%pszzjLZ6@vBfM{A$mHrW%B zq8w*^ttvGsP$R@iYQG4zkjf@>;zIV7Q6Lc$KSt8^jh>9lQ}?56>o_ga`d~@y7p^`v z+!_^18PhK#0#ZX6;|fQMcW4?4JA~s}%erO5{)j^{IFO z6c;XTiz;2FV5{}@ztRe{p%KcO1Fjqwu!8b$(9QM-x<}rNj^K0fM|iOFg71J`Z#C!!{SXELp z6%GL5n8jAo$F-0oa{}e$@h^0#pUNrnuwrY1umyvPnlL-n$^iG~VXV_@8P z#a*i$9f_JSi2GJv5_Ky3M--bSY3-R%B9kmUL=J|geezM4E+u78R8y-xZ+yUeOGD0I zqWeC`QTt6Ml>!d-MA*gGrsUp$QX~L|+B<+0KM;<-=FBC{l6o}rwFAHKPDCNHLxKs* z!;A&X{mS%pb6{t{uoj1we4y_hKTAf+k9<{G1oks$me`VkV8Bwt-4s2r#}geHy+*mo zB#GxKEcwhRp+*byk>s&V^E1?d(5^;oH+LIi@ESZif!%{aIPcpWwO%MwkH~=+pr>)$ z^lB^)g|;Gjr+wb#tF{0iq{N5yr6WtP?o!Qn@9^{dZGr&gz6KHahH%)~Xx`jn-uYd= zBdcf_A4ZS_Dshla<=oG^W8oatt~b8FD?$=Z;r$6vgKY-vfC};?q{#hlvw{r`P2c<_cefL;4aY7+(do(U=iNRNakKB$~ zow4)qRb#C|6*MS=f~?fia&RR0TESQ#qj`!Y@j6X%IZ`+nY9E=Ctcfm<0jWjU59$n= zluSRRgrPPA%DiA=zv+#^L3Gi=6uA-+qLVuZk?W^QHWs3$D= z5$I;!Zn&J#m=&%HCq;5%xUM^lkL_C9uq^psjk1C7DM&-H%qEwqqg@Z(4QwVO;|nW6 zTVYci0)Ohr@P1}kQg6Oxqw_xZMYYKuep*oKIz~M-}uL+rd!j3r+ z&w(k2GNBMHD z++Pga#1+lV(mHtio1|Q5jb9z-{R+Q}_pmdTwb>uC)Sf?OQ3*vUU`1JPCz6ZDVdGak z-1y{Am2bQO=FxwOae@pypyMd|KBJI&Kw=3JF0qYL*+g2HPC<{zISdQsDJ@rH*^=%) zgcBtmsbg|qvBX-i7p=FuLn>mr+PYSuepUZu$qiJ(mj**~C*9F3o>_%_EFNTE)RKke z^}`=S0a{I$d^0;ZfIVJs01O30`W2~;5O@Ig__A2pfJT?9!UG@S8-YiJoIfqk$n^$& zVgu?A4y6agk(1ObqXz>vW35bylpEckFv#&<6=%r%U`gI&#ZRB=|7hDC!XA64Ot9C{ z9Of9N7T#SMq85C8QfE*zjM$_bnf<~hwZBB6X*eVE8=?L02t@}Vbl|~2a>;S_>7Y0; z%j08$s=+mT4;nx~i>F7C-UW0v)#+V8iFdi=3Aox2qu0=lb8R0Cm_)z6ofWoX1TCr` zd3h>&9Y(!aN+)Bb$IJ#W;OP%!8C_m7K$1_Fm*5rk!T)6{uvREkec`on zZg^x7Icw{RQfTLoT5Gp{2x#Lywm<$u8!utwT|q;12QGk!!p-28Bqt8O4DKhf+Ns#! zzkZB9E^7ZG-FcO9urvIb)F>lN#rDT)j%)&fKh6ze<7}H!U}o9(jA7F2Z(gxiM4uCj zSGW_(5*vd*v421^G0L$!6AGsA%DrBR_JDQC+_ER4izOh76YOOVgGKg}*p1C4vkMY7 z1-NB+7{A7bfy_4q2QP8|>(dk9IWHP@YiMU^PYGnt7fIwv=46HX`)r?Vxnh5v9mPW!9Re*2k}B|Nu{1?X{g9R2Qb6@H$@|J~!7DhCYfKC9jFPW}~_uz%w6>7Q}QY^+BO zC|gBH&!s3Qrz&>Qk~>kH9fEJV#?Z0Vldk15hwkoXEYbT%gs==_%mLl#p9|+C0E7Lfve2N`g8FawiHdAlu&)o4dI#(My8{?6GPdA39(|Mz_JJyAGOaAe zYxF*%7av;SQA5}10u7pjAmzV3n+5W|@lgCtIUzKEPxoyS-^`um2vh;neVRyzie`3c z1>F5jFo1IQv7Gn3H`g;vmvlKDu{IE1WK}wQDB!LXemB<#-M;#~(2FQiti2d{mrh{%NBtM?b1)+pGs5nF{q z?amDaepPVulrZWuhk_N+FtdfQ(r_eyjedHn#}XvkJ+(fwUXigU>whCN5m4cTWG#9} zrLiTv1qJi&=INW)f2CS#FX=XnzuQ?DARtV@C-}?S-9PNwF#JU>qkqrPsc&#&&wKcN z*8tt5^uW{g&)=;P7XC6s=WP7h=0YIj4Dhqmz<4>GK7+4mpKubd-wRGFfqViIyap}R zeC?0BPtCJkuoWE#J>3Sa;S7wCAg%A&ikQozh|(KIma%@x znRlT~s9#ciD;hM>HT*#CSOvQ&UhR%h665Z@;M|x|H^%5vRP@KTaykVenR_odV~$dp zya}}z08=i>62GiNz@{5o7kwc`N6ohC;$c?J3CMBG*si7m+OC}X;L@cx(!$b?1IQdB)2~`d2*JC;IpM?bx=Gh_(Q~p@NCaaEyslmw#U+$qe?a`7d*j!M`f7_cjJ7H+>P-ubp zN;4eK5P{U&{KM?#>g_)EN6pLM>BrwM-5>!2D~StRP6?aA?1=TptBng-baQ-X_2y( z#(_hUG8G7grSqv3{x}xL9#MII3l5+OJ_#5)L#N{m-uMxzLM!U;K7rM?3d%(1zqn z`896{I)HxT1i||$ zr{5IdXli6-MF0Eo_om&6x@H76JE}MRH6QHN**)9N7_!X;>xv;elsb7~jE3edML8y> z#CjBzUp#M;U|wu;JF2Aaqr4;xElUH!3;kOB^jOScobgHA5BsW&_~bQh^qA+YuU{Ra zd9yfM?G$95^UgJmtg_Baw`ttRG-#o?V(YypM^N z?VFTo!jWK!?ffQeK{jMCV&VeDcxj_Kxga_iX;mZ(H5f%nE;_&l za&MOn1w|L1US{ZhJa2wABk%_E`FL=O<@5@Np_+dYe&|dG*7V2X=B1$yR12lsTSv;L z#V^9H-y!TI_KG1Q+=@uno#pekd(ua;G7|i39m~24@kpL91~wRi#zUTiS3w5n&rs5+ z`p61cO+v;(n(`dN`_wt=JVHV=oA+AY$Gn6Vm!1d`_uCz1HnlDY+jCBWo@L<*Vd+GdC) zustE)3kI7)RVYvj{r24^m+vSvpEeTK%;=*U(U0Ino@@*|rUcqICes_Z;T^FU*|RrS z`?ul*1inu#Z`y3lDn=uxxrXMWFE=;EK0X(IcLxZ%uQ!|Zjz8yI^|o_7pJozre7w@# z)$Go~hjM)0c8AXK`JQ)UZ16Z5nmM@`wuF!kwzLO^*5T0mKyYt&KwtHd`#vB^fr#X; zhYY3jvx#G-Akf!S_4#~t{ zrr?hEf-96mn~4Ncg=kNZn}f>nT_qm z38J#pQ`O%Zd7`B}1%fqFD-4oS7h5 zJu{OB)h?L}9q4JtwU-WrD{6noZq|WEczmKb)tglfV?A*0c8hT`wnE=ZF96Y11B>|N z@MIiX!YYu>AOr>;9APcc5A8#jKdDU1<}xaCB9jpU3{70V9wu=)zJ2g{3FVdBD5lMq zGr)hS@?KdoOD3_-p{#o;@ChNAm4`*H%78=S2j_8n8E3Wm^P87)y%~MZ0@Fd`xEt+` z`;$9uqqI&ZzfppVo8uJu`r>68qU7D4|F(8s8!yPZ=^!Y^{3*p+f>tAt36keHmNdHc zXk79IN5VN0=Bbz|L}gx`^%q%@B6q5GOq6NH*}m4V;c`bmyo%l0hX&1x>$Oz0C+34d zMm*b5s|NF=NR=Ebvt7MW(H%{Z#f z$p1{q(-5`WgJ!ToLv!7`-4yBA3lUfr2sXw^JTO2jZb)m7tb(3Q6Ln8uE=>cL*QaMD zh;dX}YPEAScQPyE5i6i2j&!V#Vwh#{|F}iNJ(2vRKG>QTGS4K}qThmT&-^oL0m(vy zsQ8;78JW^_KezQmqxpvvYGM|P2b4pMz9CnL7UFr$kNHa9yf7uQt?yIxk}*Hlg$O5d zX(h;xLNLaqdL;JK>eBio!LiKXvlY+I^o3I3;P>|SC73P$oBKb+LW&Zf{ zSx*nq*KasQ&9|W6dUGRA&U9j`*EWX6G}B>-(Lbhj=Fpq>-Mo0UY`1pdmu0wZ5c6}n zSR@J5FQ3dqPndhie{jzd&0DH;g6`00UdO&})%(i%?Z86}3#XxcE%%2Fs`;LEGvd7D z=(A|OJOWjcv%C%aqrj7n%3$}X(&Mlv@Y#1~t3Rrv|GCtvNoq6Y4%j-=MFIi>?6tl- zatB8@OCyJO7e22hXR#xS+V$}f7eXK={8den#K29RoRP*-%2e^ti6-hqPYlb2MRqS) zQ19cYpiM_Zh@cHmV~FCRBE^$YYsQ+*3_J0NVx7b>nM_>};?$=pkMq0z7u=XLWlkY- z;l#v`wOc2P5JV!qN*dz^J70H7F|kS#zlk&MfQLn~Qbu{~xNKl1*-s45_#=k#3o8r` z3Xbkg*Nqwq*lV5rBBk8Sh>XCIS`2SdrUUOWD^0aGZfU|*<17kNkiys>VH32c!K+L* z?!6*Sb`-@-vY;K~cVqHop#Rp*3?WZF)CX0T$^Wecxe{5%OGr)@rAI1z1UJ^=g61of z8;Z4|2)Znn1i^!OJkCbl8grBCc6j_JsaTY%M%cJC-6Qo@VAE4 zvg+=>iPDRbXV|PS5U4{ngI@!g>0-eadM3;y{Tvi?I9`s9j?SmPm%<(-R$7#mFQKa? zB7!s)_!XOS0b%{f^yfyMQJgmSwJA5(+-e6e|Ef9b;Ab$EcK^6?P~G+TIAGJ&yD@g| z?fq~c!uNI$(ZbDk>2*z*R*msv^0=)dIvHlwd$5lg4N?@tOs=;CQ8=Zgd_AuYJ>eTPMWfT~p~IW4JKe8kyO&c;$w|{P`SH6)_3DI$pMHw! zZE(I)dxR3ogmo^?Un!uo2w?k$u{pAfEru!-w@3g4~jsa*3s6{ts2N+#bAt(^mpW51wAHuLcN)2Nt#mbC`evpeoQUZU$npG z%$pDti-K$Mjb23GJ+n4Hr$CDeuAH=>!5UQ=0=AEEEx&5C`?&H014=a+aWFd34&Nlh z_eQY1X-*f>q`~`512PqBe12H@eA!mXVVQM%xQis3U#1e5 zX>-2;(xt4!Q(u8&HC_L zWny*&l@GRnC-EZ6i|?zReNWB4H?q?zl)02xduFTvbx@A{3Ln{-NU5Ev+#sja-iytg zC>3(=EksAcUVF?-XUOE2@hpf(kivl4M5zReikdpbiTuD(G35#wU|Et;JMvprSBz!LPe5zqzU+O->F)0Aui+ z%sa$*>L(Eigp4LU7K%S%|6%}n-3k2Z;Mqwlv&h9~D0uO~ zsz^Coh8w&zAmcGLBfWtVpN%Q}(^xSsW%P2h)iR8zLcJL)SU;lA-gLFQz*kb;^EISMf-7fS?Yp3hE+=#hUEw3#Lo4zV&k9S?F`bc2)n~jIE zR}=N}-3YP7^c#b-$aE=OjL`~f4Ly-iV+y9$oQmb1ihh`PHo&#?@9p6z49lnVfEhL; z;*3Y-g0CnknfV0b7K(#6vDOxnITZyjB=PdvzV@6Rc<|6D>0$vlqd$5;njD>HOGVz( z8}a1{C*;0d_c89RE_S4W&5`mbZQ-RRdK=g;>#E`S&WO>-30%)3n0tgLFfANG(7MWvXvtO=s+UY7 zn=OcvY?-xZ0Do)P@)BL(UDLdJ0gsZVM1-uN8V0mFGM$EwSXaJGV`l_ zwMbnSS%bgp-179%ru?)X&P?F+NA(vk^qa-dV9hko@NG-dI6+iujU1WYq25R6N3}qH zFPhFx;ds{N;B6-j>I?sfuls$-J20jvyce*kcnA6_ z|BM4SViJj=1@&Ty+<1)lbO6(o#i$^_r4lgm6Z$|id92{sSQ#fdBN!O?q8~nhANHa-CvRj zb7L5Jh`^q%C^NUZ)P-!Imu){z2 z)wyb);JhUQ(W{21+a{#$!Xi>MwmFSez6)CFp^w-M+NRpwR49p-8A==7C>o?m-)^nQ znL5kVv+q@du4XCWLcr`XG~~)IXr<(|&2bF+o>M+oyoX?fH2w=`zBtdY^66M0AOvE! zsV4Q z1ceVzKh-h>W8On>dgPHk{}DYpjON4%6ndnXSFz@ociV{$KOhU%5~TD5oCXQmunrP zmGb6NtQU$mHR1!vf}!6ba1)Aik1bzLdd~t@%>(imBq-^H^nt6h--~qr69+=cNMHY> z5d7Y{{+A(0{4WoI;S~$fe-wh>yQKdz1k?ZJA&}Ofa{rG)@O$CzA4Bj57ZgJ(h3{!e z61;PP@*iBlPWbwC_$Lr1E*Ry0MyCmpz(8vI30~I1u&CX)X5ZT6s^K_UhXCju)CnIh*1}edxpvO}n&OSC`c@KEN|A%JNMC0pkI{fMO1Sl#0nF}oV z5T5$}6E66@)AWxa_zM?=G=Yt^1oBq_?sieuo-A^bG;J+)b@#oNEeJ1Us9kS)?(S15 zJq-?u`rt)r<%z5M(#`-dJeVDJ}yjZ^# zK^C(#o-k=iB8oKigeTwo2ah3@TKwhxgfJK-(!cL=0N zdM<;BZU|Hxsoz6j(KI>rNQ|6X#Ts$2_I_W9e~v*u3l_$Ilm@@oM*fV!AEN00hPdt> z|5G2)?58M1tJC#gMbS9*^~JE1=vzC^S{NkEnGFj$P?;Qql#h&DU)iJOuUfsE6~0W{r8*(=@i+;_jH zba_(Hx(%-6Dt`3R!{y{@^8({#Dw2erOnTH0?20`+F+gjc4uJx_!P|Jst+?8+o2Ajs zb^VX?G5?bfgB1AE{-ZSbJ)r+H1b?XFpJ^})@&6$Wcmn=^O9T4+3JT721Iq6=yVK$Y0wVt-2DX5D z&e6zT$;i?1y|APIAHTEH>6=-fXsksLtE2Jp)K8v$tBVYv*=ZfF2_LS5mvEU~V~%8! zpjs=<_MG20Ag9w;&svoot*W9bqq4et?D<5KPe4>ROh9zSusKFV^un;2|JF@ZcfT1x z4}DyZP2>-i&QpP~%i@fYi(dE~6Z9NrA~A{nWMhWSrU&{O-RbN3l} z^E{;ZyauJZi8;l#IU?J9-`Kt{i?fCUy8prx4q^uzUM=^ps%sLgYy^fLaiZ$JH5M*~RB{Tb+`5L9211$$7wr3d)ksDZ*(_Gqv;u5nT5wFTI zqy&qc8RCD$w!*rFH^nUvPVuKVs^)bCI6`x71dDuk_7M2d5T`w{kfq0J%`>o-DnbY>}WvJjk(%#KZcUDP?1d2Z2rc- z=zwZDrTnLHUUq?h(Q;e3$r((w_aXGA#+OB_J`04)Qo}`_K1KH`Qus$-)LNS+;h7q4 zp0C8>V`xW>pG_g5W@FPFXoiH;N$vu1<(F!gI`zRIgp*CdiwxMMM1Ho0;MPw(koI*r z)|l9p-$uf>f2M)i#&wV@P>s#7(;l|AmL^v37qzrqb>OZn+LFX;q~4gtDy>QD&c_H&0;`nnC3n3LRo5O ztyPcgj}zOmQpKWR`u4J4xaC7|fnDp_dI~fqtZ}AoWGCi_J-PZOS-G0bE4>JqP4G*S z;u&+I#ms(5I=+WMc~!s6_p$w%C`Y+;G+mQ_d6|WdqLsOlX;7pQRw`DiGMi^f=38OS zKJ*tF62-M9b{CR6HtYbg-?TMoQ689$Ev?r`r*Kzo%|`1z=x@4Wa!T}W)ad7QGnj== zmq>zdQMDzMNi#e{XYyEg8G-p{`8zdfZ8;OO^?krzG*LjyBk>$nLnqE*!#3xeHacN5 zchep-eJImW(w$1^q_o_^RKc_JSY(4YsQRgp3!k~rScSq7Pvy84+wMwOYX8*&g6Pst zJiAlxUZ8WY|AswMWz#hze38*zWphYaq2UXEGp8a++Xv|#et`}0YiCqWy{XRdJR^vZ zFAjX+sjheS)& zgQ|>g3aUEFLbl3H(7YD$cyv`vznF>0vCp+?{5UXCSk92zQJhe=)?k{EF1lIu#E}g; ztD8uASdyl@!)}dFO__0YkXhC;BU?DoN9jRyWcKLoJ1K{na*#^U2mBwnyE#zmg`R%0oG%clOwT; znIU-`=cKS+)!(z4m!ADh^;R1AjxF<(lRTBCjLO10nY5&nYiBDfgQ&HcmS3e=xd%>y zsKa67S{9|)7rs82)7?HM{Lr#QySj1jo~W z8`PWyY43CrOu;K2o*$6)mTBCYA6rdQUs;zFHFy)OGi+&GRsLuX!ks$r-asLZ&3Na8 zjr~O6x!_SU=zY&?)c(YDVc|geh<@=(&-=CW1J=5G^r4jN>)z9=RM)C&tNrn#&Drzn z{m>8K%QvU=L&{<6!Ncv#Ovu{tm|x(V>~>=J4&pxa!Dt0Oh<#QCK7rWE(=Ly7&H9(b z1$@8;aUEU2xW_w9=jmDNrT^@o}FQJ1GlO1F_Wu7yKwvXAYRb`|H(rVt$z<| zSvU#1cib)JH6FEW@-Qd#U^O@ed;COvJoL+Lu@eU8yDGRhd2knu=go<{cgmjE_>EV$ zz2~>x%SifsTGbrfA1+ZBL&5jQ-3$8nI#_}kG7@4MIo3StPm_)ppN{fm}6iFdc zD#DZ&;u#)VtYaxl3Wdm$_n3OG!)bC&f4+5}KU~Lk&F?ekKG%KB=RR}%zL!54msXvh z$f3}9pBwPuO6FCLb$P8V#r5K|%jPd}9xD(F3&DOxw;mS#sx?sHJSuSaK4;};!C1dT zbV@mqT_#j*AK$35N-w=^Qu1!7!Vv@Bkl{#+;~etXmZwcEeys+>A2ps8h=#4HD_PvM zsF=*@Btfr6Pw=3&^!2`JEr>dEL#mDs&& zeU8r6SW`s0#-VGA&EK<*o6k;r^8EXHbvv(;^ctCASF8V|n2)$N_wsi|eB5)0!|=06 zG3HoL&H;^%i)Qxw>I%o>#DldReTvSt>FnGXMBx$9mvQzLjTY1|K$X)u*7`IJa;yzq z&rusEL%>_bb9Bj@b3_NoeNlUx;YrSl)krjy^{mz`qd5^IK-bG zP0k)FpDNM#-USO-W8(qZK*!dnnDZ-i{9*3U)i(*t6(gZIM&g8%^xQZN1ZltOB?kWF(N z*TE@qwY>d-oylcE*7I|M&o-fVT$Z}M|Ncvxy}nqrUFmMT{dlDMP-(^IOXz6-O>&9E|G*Zl2C87A7g86(f17~>Qu7`8QT}c~nb@77g&JWaWa_`3; z+M>jDE6H3z&m#DGw8jo@PPD_*%b?{_R(lfdCS~6H3jcNs5meFP5CP@mY=4JERcU^sQoY^Ukjk=1~&G zs@$Be2tUNhGZ4>7k8z`xUUt3|A-Gc9wr5dtFwMhJ`$7$Go1V1&R3|8OJJ21W>s5EvmaLSTfz2!Rm-BLqhHhZ~^| zFhXF2zzBg60wV-Q2#gRIAuz(<)(90@>OP~Y0+bLaAy7h~gg^;_5&|UzN(hwjw^G7k z-+QCe4H0ry{mco)n}%*!ZYH!$W9v#9x9U7BY}Kk~rS%LrkD8ff}JvQMSGF z(l|HqyEt-R(^?p8U)8~}Oox{5v@4S4+#ACJRS=ZYCD`n>*jQnIxL=wg;%AKm48z7VT{@D1We*K9CQMs_A2EyxeK4j+B zRb^>kQWHt^=B|8oXSZFCQsdh|3%5QS)h>~?IycVtkAb-kriWf0>5r97T^i-zMynX_ z?g`Q`CK%-@VQSCsu-Uu$X~gk<{R`zKV;2G)HYIgVoenfN{wv`m`$rx{pO9hs3g)fS z4<6rIMuVmm7t}X*>CBn8heQGs55CwEPt#l*H!gkBA6X1_M=$cW+pKz>muga;lD0_q z-jOQTz3Wc;Kkmc64n6A_tT@CQ{H}3j?9=XT%k!EP7kFPtB94w$B@10`%!_s%plV;Z z*|TyVKlXza{uO7TU8w$8St_|AJ(DCXaOZF-=IwZZbDP6LY2JuvCHHOEU`m=*(clmpcErhFm}J&i9c>woTzt za+>z_%!e+Kb!ii>`2kddsDr!4vT(kwn|w{HC5R*iJT=NZw=R>cBldiU5c>kULYaKV zJ{N96NNnm8TVC;`6X9Plc-?(9SzOhvD{t&-QH+UramMe2rgA3PQGeo#-_*#{4jMiD zbj#ZY5*9_NGS-o|UX$K^Gtb0dcBSOsBtg$*W!pDk-pSG@WfKdj(u_~L85S-dmjlIHosb3LApwK#RpgyIxBnWkCWmtZtO zx9G~gai;lXwK0zJfZOIpMbg@ctGcKiM+w<_SA2sflZH9HOdQ5jRpYxVvgJZEgOt^6 z!kR-pbkOl-GS2r;ZNdypDxCcmU5M-p{OjGnG{Ax!EXcuv94yGef*dT!!Gatt$iagA zw_1?@x)EvuBLqeWj1U+hFhXF2zzBg60westH$wJ#>!8@*MQn?q`@nK+j$cuzbI`5w z>EtLu_|EY6J$pkU6d>j4i?a?Q5qun`@10wi&Ia7xsj^}Sdif6MTORINfNChg@>}#4 zBX0{?cuI`FO$&PGd?@8nd{*J`B1VGOx7z89Q)eR4ZTh{La?CXUCbvLuCC$agHXRZN zZ|=~Tz9)hGkAOS~C4;zigHZ8y9yT^nxDwh6fb!dC$B4nG~J3a!9DBy#b;Gl0E3kroWiI2<%f zp{YA#^V4Ghe0+o435-B+8VE)s~0u7!d1#&ZDSAX_9583YRho3_mXgkxcmKxC{c z45XXP0fa+Vkw9cfDGY4iJ_itvEJXs5iJvgA({v6Xod1agBJ(q0V9$;@fN+{75{L|= zgn=K-<^X=X#+iP^A#dEk#E%#T5fSXjH0Tj|m_LWkw`B#&$O>W|DuibR%4j#wI#j`f z6)2-)DeF+309K%krdO;(O%JgGW%Ny89qJIn3Y77$cXL4%;rRsZ5#v~aetUWwNuB-3 z&rEE1G8@|u4*(&{XFs 数据需求: +> - 图书信息 - 统计信息 @@ -171,7 +172,7 @@ 编号:D3 - 组成:对应图书的编号,副本编号,资源URL,大小,日期 + 组成:副本编号,资源URL,大小,日期 数据量:800条左右 @@ -185,7 +186,7 @@ 编号:D4 - 组成:图书编号,用户编号,日期,内容 + 组成:编号,日期,内容 数据量:1600条左右 @@ -233,7 +234,7 @@ 存取频度:每天100次 - 存取方式:随机CRUS + 存取方式:随机CRUD ## 概念结构设计 @@ -251,5 +252,93 @@ ### E-R图 +占位符 + +## 逻辑结构设计 + ### 转换关系 +实体转换: +- 管理员:admin(密码) + - 系统中只有一个管理员,密码只能通过直接操作数据库修改,这仅作为一个存储项,也不需要主键之类的东西。 +- 用户:user(用户ID, 用户名, 用户邮箱, 用户密码, 用户配额, 注册日期) + +- 图书:book(图书ID,ISBN,出版社,日期,语言,标题) + +- 文件:document(文件ID,资源URL,大小,日期,类型,副本名) + +- 笔记:note(笔记ID,日期,内容,标题) + +- 类型:type(类型ID, 类型名称) + +- 作者:author(作者ID, 作者姓名) + +联系转换: + +- 管理:管理不直接通过数据表体现,因此不需要添加任何的关系。 +- 拥有:一对多关系,因此在图书里面添加外键用户ID,修改图书关系为book(图书ID,用户ID(**FK ref user**),ISBN,出版社,日期,语言, 标题) +- 存取:一对多关系,但是由于该联系有自己的属性,所有单独新建一个关系 record(记录ID,时间,操作类型,用户ID,文件URL)。由于这里可能涉及到删除操作,因此使用外键,仅保留存取记录。 +- 对应:一对多关系,直接在文件里面添加外键图书ID,修改文件关系为document(文件ID,图书ID(**FK ref book**),资源URL,大小,日期) +- 图书-笔记:一对多关系,直接在笔记关系中增加外键,修改关系为note(笔记ID,图书ID(**FK ref book**),日期,内容) +- 图书-作者:多对多关系,单独建立一个关系book_author(图书ID(**FK ref book**),作者ID(**FK ref author**)) +- 图书-类型:多对多关系,单独建立一个关系book_type(图书ID(**FK ref book**),类型ID(**FK ref type**)) + +### 关系模式优化 + +#### 函数依赖集和范式 + +book_author、book_type两个为全码,无非主属性,必然满足BCNF + +其余关系的函数依赖集如下: + +- type:`{类型ID->类型名称}` +- author:`{作者ID->作者姓名}` +- user:`{用户ID->用户名, 用户ID->用户邮箱, 用户ID->用户密码, 用户ID->用户配额, 用户ID->注册日期}` +- book:`{图书ID->用户ID, 图书ID->ISBN, 图书ID->出版社, 图书ID->日期, 图书ID->语言, 图书ID->标题}` +- document:`{文件ID->图书ID, 文件ID->资源URL, 文件ID->大小, 文件ID->日期}` +- note:`{笔记ID->图书ID, 笔记ID->日期, 笔记ID->内容, 笔记ID->标题}` +- record:`{记录ID->用户ID, 记录ID->操作类型, 记录ID->时间, 记录ID->文件URL}` + +可以看出,他们均为非主属性对码的完全函数依赖,满足BCNF。 + +#### 其他优化 + +冗余设计: + +- 因为用户可能会经常需要看自己发布的笔记,虽然可以通过先查book表再查note,但是这样会降低查询效率,因此在note关系中添加用户ID。对于document也需要做同样的冗余属性列的添加,以提高某些情况下的查询效率。 +- 建立一个用户的统计数据表,里面存放了用户占用的存储空间、创建的图书数量、种类等信息,可以减少查询时的数据库压力。 + +简化属性: + +- 由于时间戳是唯一的,因此在record这种不需要更新的表中,可以用时间戳来代替ID作为主键。 + +安全性设计: + +- 数据加密:用户的密码通过加盐md5的方式存储在数据库中 +- SQL注入预防,交给框架来完成 + +完整性约束: + +- 实体完整性:各个关系的主键 +- 参照完整性:。。。表中的外键 +- 自定义完整性:用户占用的存储空间不能超过配额,也就是用户的文件关系中,文件大小属性之和不能大于用户的配额。 + +触发器: + +- book_author和book_type这两个联系由数据库自动更新,当插入一本图书的时候,通过触发器来插入表记录,同时维护author表和type表。 +- 对于book表、document表、author表和type表,在更改时自动更新统计信息表 + +## 物理结构设计 + +### 存储结构 + +- 存放位置为本地 +- 存储结构为单机关系型数据库 + +### 数据存取 + +- 对于type、author、user这三个表而言,一般只需要通过ID查询,因此无需建立额外的索引优化,直接用主键索引即可。book_author、book_type这两个全码表更是如此。 +- 对于book、document、note、record有对于非主属性的联合和范围查询的需求,主要是对日期的范围查询,对于类型、作者等属性的联合查询。其中,对于范围较小的属性,如图书的语言、出版社、类型等属性,可以不建立索引。对于标题、日期等范围较大的索引,根据启发式规则建立相应的索引。 + +## 最终的表设计 +