发新话题
打印

DW构建Blog全程实录(3)

DW构建Blog全程实录(3)


第三章 Doking's BLOG 数据库的设计和连接* p6 d$ q8 _4 W4 `) W

/ A4 J) g- {8 G, x  构建好开发环境后,Doking's BLOG数据库规划是第三步,它也是直接关系到数据库以后是否能够有效运行的关键步骤,也是对一个数据库开发人员的规范要求。  ; B& J' [% |, _* O$ o1 H' J4 i$ o/ X3 x
2 I) Q# I; I$ S& L
3.1 数据库的规范化  2 L- ?  G$ \2 U% I

) C/ q' z6 ?2 o6 h  数据库的规范化主要体现在表与表之间的关系、数据结构及存储两大方面。  
9 p3 }3 y8 A: o; h9 n8 E
* W, ~& s8 j9 V1 i3 _  3.1.1 数据表之间的关系  
( N  A7 n' t& e5 g2 f1 ~7 A7 l+ r9 p' [( ~
  许多初学者常常认为,建立一个表储存所有数据就可以了。如果这么认为,那经常会造成数据冗余的。图3-1-1是一个数据表,可以看到画在红色圈中的数据是冗余的。  
+ V, t' x  R: d) A9 I) N/ Q7 x2 n" e; Q2 J
( p; J6 p( |( A& g; z8 _  P
8 ?1 P7 }2 ]- Y, R1 ]# ?4 e
  
; ]- e4 R, I' `2 Z6 }0 h6 H: d  U  ?' _  E0 G- S+ L
图3-1-1 一个数据表  
1 C/ b9 V6 ?9 c" F3 ?! O
# f) n& x; v2 R* M- u  冗余数据会影响数据库的有效运行,甚至可以把数据库推毁。为减少冗余数据,得把数据分开储存成几个表,并建立表与表之间的连接关系。表与表之间的连接关系,主要有一对多、多对多、一对一三种方式。  
6 R3 O# G1 h5 M) H* A
8 w% A: m/ T% D2 R' M3 F2 ~  一对多关系,它是数据库中最普通的关系类型。这种关系双被称为是父表与子表关系或主表与分表关系。图3-1-2就体现了一种父表与子表关系。在这里,专题表与回复表就是一对多的关系。专题表是父表,回复表是子表,专题表中的一行在回复表可有零行、一行或许多与之对应,而回复表中的每一行都与专题表中的相应的专题对应。  3 x  s# s) ~( s" ?  S# |+ j: n5 v5 J
2 g+ v/ c0 A( O5 S
2 i$ k- `% N# b: n- I! ?
( N( `( ~2 u9 J9 F  p; _/ \; ~- O
  * l: g$ X3 L# s' S) w" Y
; y8 l! r: q( H, o% b0 C4 v
图3-1-2 一对多关系  
7 y/ Q$ @8 h4 @+ ^3 N1 R; ~+ c% K: [* v% t
  多对多关系,就是第一张表的每一行可对应第二张表的许多行,同样地,第二张表中的每行也可与第一第表中的许多行相对应。例如,一个专题可以有许多用户回复,一个用户也可以作多次专题回复。这就需要建立第三张表,将专题代码与用户代码连接,这个表就是前两个表的父表。在图3-1-3中,“回复表”就是“专题表”与“用户表”的父表。  , ^/ Y  j% j( Z( v$ c  {( z
# U2 L" I6 r2 i/ q/ q
- _, t- U" D& @# n8 {, ^' {( j
% m1 h8 _2 ]7 x+ e, b! p
  
$ }/ {9 i: M9 b* {7 Q% L+ C6 e
; e7 |$ o0 @6 J2 A( ^6 C- P5 m图3-1-3 多对多关系  : t" M5 l' f, \% Z
% w! S  W: \  i' E& J; J6 u, M5 \
  一对一的关系,就是将一个表中的行与另一表中的行连接来。这种关系非常少见,因为如是有的话,还不如把这两个表合为一张表更为合理。  
% U' f/ s) X# c* i! F7 B3 V
( O) x5 I2 r. i1 X5 k) T# t9 O6 l0 A3.1.2 数据结构与储存  
0 D. _+ b/ R; y  E. p6 o% x3 [9 K/ W& ?+ V0 T
  数据库的物理结构必须基于逻辑结构建立的,在设计表格、字段和关系时就需记住一些规则。行与列的顺序并不起什么作用,虽然在数据表中,列会有一定的顺序位置,但它们并不以此来代表引用顺序。记录的顺序只有在它们从数据表中取出并送给用时才起作用。SQL会通过参数数据库索引来处理记录的提取顺序。例如,在数据表中,把性别字段放在姓名字段之前,这个错误没什么,只要在采用SQL语句调用这个数据表时,记得把姓名字段调到性别字段之前就可以了。  # i1 J; F$ _7 H( G- N" E& O5 M" G
% Y1 K& \4 g' t: M
  设计数据表时,分配字段大小要慎重,在够用的情况下,能省就省。如果字段用于储存整数,请用整数或长整数,不用单精度或双精度,如果够用的话,最好建立100字符的文本类型字段,而不要采用备注字段。为什么?如果你不怕高昂的服务器费用、不怕网络数据库运行缓慢,你大可不必理会这些,但它最严重会导致数据库崩溃。  4 M9 R. Q7 t5 A0 P
. `7 b" U4 J/ P% @
8 E2 J$ B- @7 R* b

' F* T' V- [; D, f# E1 i  % r" U& ^9 h, q
7 f1 \/ m: w+ f4 y. t" w) Y
3.2 Doking’s BLOG数据库的设计  
& ]5 j6 m1 ?, f
1 k# O3 n: a0 n2 j3 o  基于上述数据库规范化的知识,这节开始规划设计Doking’s BLOG数据库。Doking’s BLOG数据库中设计了五个数据表,分别是LM表(栏目表)、ZT表(学习笔记表)、HF表(回复表)、YH表(用户表)、GLY表(管理员表),并把数据库命名为“dkblog.mdb”,保存在“D:\dat\”目录下。  
; C$ F+ w# c% X5 M5 y1 n
! S& L6 P3 N* d4 X3 d  LM表即栏目表,用于网站导航条建立和学习笔记的归类,栏目内容是由网站的管理员设计的,其字段设计如图3-2-1所示  
, F# u+ m( [4 q+ v3 M: P: {4 Q" O. y4 K' F

3 g3 M1 W2 F% |1 {- R  o
1 Z  t1 M8 H$ d2 j/ {" C/ O+ V  / \" O7 u% |- S/ x) f  G( m) f
3 s8 q. H  B- j9 H- X9 M4 b
图3-2-1 LM表的字段设计图  $ a& U: L9 d9 e# A) O% ?
3 }3 I( X! }2 a- H( h+ z5 ~# O
  ZT表即学习笔记表,是用于储存用户发表学习心得,其实字段设计如图3-2-2所示:  
! T3 {  K% k' [9 ?4 Z) g
8 p" c* H6 T$ M3 j5 v' ?: _( @, T6 O5 ~

" r2 d: ?* x! ~, R; F  
/ A" i+ ^/ F  A2 Z
( T& W( W# r9 x: ]  c图3-2-2 ZT表的字段设计图  + W( K2 L' W6 M

- ~' C5 A2 ?9 D. R9 x: ]+ c7 }( f- a  HH表即回复表,储存着用户对已发表的学习笔记的回复,其字段如图3-2-3所示:  
" F7 i  |- F! F3 P3 w3 |3 a. v
2 ]# C  C+ S" i- E. H9 Z" K" I8 f7 \% \( o2 M, b- ^
4 z0 I# C6 G# o( k: v) K
  0 M2 S" }# T" v
4 e* B. \7 D% E% r& F& G
图3-2-3 HF表的字段设计图  2 m: K% ~  D; T, c
4 L/ r; P, g/ B7 P& g0 ^
  YH表即用户表,储存着用户的注册信息,方便用户登录发表学习笔记和学习笔记的回复。其字段设计如图3-2-4所示:  
* w) X  o9 l. N9 r' S& n+ i' x  U/ @+ L+ Q5 v- Z) s, w# }' \

8 C( q% i! G8 ~& l+ E- G2 l! q  Y; m6 h4 i( q
  % h& g: @3 P, k- f4 m( N7 l7 E( Z
0 h+ u! O  x8 O* V
图3-2-4 YH表的字段设计图  # q+ X$ c5 D, n- W7 N" M+ z

+ j  l2 f% \% k+ C$ _  GLY表即管理员表,用于管理员登录,管理网站,其字段设计如图图3-2-5  
' x8 S3 n5 q' \% b6 F
# p* V  Y8 x2 v" O9 O  q1 t
% r. f" h0 e# {8 j# B  W/ y* L* i9 i2 N( \
  
  ]3 a, x  u. `  i4 S3 I6 W" E1 n% H- }4 X* l. }
图3-2-5 GLY表的字段设计图  
0 F2 o4 [" Y' u5 d8 o9 X9 E0 I" N3 `0 b
3.3 创建Doking’s BLOG数据库连接源0 o: H9 M3 _6 L& q! H5 a
  
* m9 |, C4 l4 B2 u
! l; w" F0 X: b# w. `- w- b" X  (1)启动Dreamweaver MX 2004,在【文件】菜单中,选择【新建】,在【新建对话框】中,选择类别为“动态页”,选择动态页为“ASP.NET VB”,按“创建”按钮,创建一个动态网页。  0 c' d* V* L( m

8 y: R# S& z" Y( Q# ~9 A' [2 V. x  (2)切换到【应用程序】面板,选择【数据库】选项卡,单击“ ”号,选择“OLE DB连接”,如图3-3-1所示:  ; g7 O8 ~) x5 q+ \
5 F% t) a4 f' M1 m. r. Z, s
8 X" ~5 E( z" T, }2 z' v& l" K

' o2 d. ?( O& x# b  9 e, o9 D9 M$ H3 ?' K( a5 u

' t2 Q! m* d- W; i2 h4 d图3-3-1 选择OLE DB连接  
7 e+ c1 w$ }# M; I/ H1 d, Y3 M& j4 A3 s4 w
  (3)在弹出【OLE DB连接】对话框中,输入连接名称“dkconn”,单击“建立”按钮,如图3-3-2所示:  0 ?  h9 {4 D/ \0 f" F& G
$ Z" [$ `* [* o% n1 {, Q4 v) W# [
3 s# U' J" S- H0 M

$ X3 X, g4 v9 q$ V  
% W& H. Q+ W( G9 [3 m1 G5 {+ E- }; X3 p5 f8 j1 m
图3-3-2 设置连接名称  
  Q0 k: e9 y4 S0 J) l& o& b! h
" x4 r! p5 a/ R0 \, q* H  (4)进入【数据连接属性】页面,选择【选择程序】选项卡,由于要连接的数据库是Access2003的数据库,所以在数据库引擎中选择“Microsoft Jet 4.0 OLE DB Provider”作为驱动程序,如图3-3-3所示:  2 y4 W5 w2 _- l- x9 u
" N* s) U- `  M( \9 P
7 |% T' o# e4 I& ~' o

' g8 V  o! N2 |6 u& o  
4 i" D0 x' g/ u( H) f' k9 v  d' J* M, i4 `" u8 F
图3-3-3 选择数据库引擎  
; m& e$ {5 O# U- D1 ~, L7 y* J, Y5 ^  }$ C9 `( z6 [
  (5)选择【连接】选项卡,选择要连接数据库为“D:\dkblog\dat\dkblog.mdb”,把“用户名”和“密码”的文本框清空,如图3-3-4  
9 z9 ?' s# n! h2 J, f* O; g
4 S7 e# _% r1 R! f2 c6 f
, X& {7 q  `/ h. j
; e, E) X" |$ E6 u! h( V3 M6 U  " P4 v- a* d  S* b  z# p) D: f" P

, l7 h2 x1 X, T+ `! ^图3-3-4 选择连接数据库  
4 q* X( `4 j' X1 P/ o' z6 Q
6 i9 u9 [. e6 O& H9 d% n  (6)选择【高级】选项卡,在设置访问权限中,选择“ReadWrite”,如图3-3-5所示  
  Z0 j$ E% T+ w+ T4 r' a" I, ^/ y& L% |5 q( [6 {
! p+ u6 ?  `0 h' Q( O
% m$ P, B# D' f2 B" N
    Q( t! P% S& C2 {
4 c2 w; ]0 `3 H; u* a0 Q9 X
图3-3-5 设置访问权限  / j8 l. {! r- G3 |

0 j: F) n' N6 B  (7)返回【连接】选项卡,单击“测试”按钮,出现如图3-3-6对话框,那说明已经把数据库dkblog.mdb连接到站点上了。单击“确定”按钮完成数据库的连接工作。在站点的根目录下面,可以看到增添了一个新文件“web.config”,以后可以在这个文件直接对数据库的连接进行修改。  + W6 t# V$ }  Y4 b5 X0 Q

. p0 m) R) R/ l0 W: K; ]/ s9 M4 t1 {0 H# H% b. n$ V

; Z# ]4 g9 y& M+ D& ~  5 Z6 [1 p$ G; p

3 X) V& _0 b5 M& t# `图3-3-6 数据库测试对话框



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题