注册 登录
编程论坛 SQL Server论坛

数据库正规化的问题

wube 发布于 2017-08-15 14:27, 1748 次点击
原本设计两层资料存取结构~但使用者要求加深至少到3层~
从第二层开始会有同时有子目录或档案~像在数据库设计类似Windows的档案系统~
不知道有没有人有相关经验~目前做了六层~但是总觉得tblFileList的部分怪怪的~
总感觉好像目前设计的表无法体现二层之后都有目录和档案的目的~
但是又不知道该怎么改? 请高手协助~

tblFileSubject 一层
SubjectNo    varchar(20)    Unchecked PK
SubjectType    varchar(10)    Unchecked
SubjectName    varchar(30)    Checked
SubjectOrder    tinyint    Checked
ShowInPrivate    char(1)    Checked
ShowInPublic    char(1)    Checked
SubFolder    char(1)    Checked
CreatorNo    varchar(20)    Checked
CreateDate    datetime    Checked
ReviserNo    varchar(20)    Checked
ReviseDate    datetime    Checked

tblFileSubFolder 二层
SubjectNo    varchar(20)    Unchecked PK
SubFolderNo    int    Unchecked PK
SubjectType    nchar(10)    Unchecked
SubFolderName    varchar(30)    Checked
SubFolderOrder    tinyint    Checked
SubFolder    char(1)    Checked
CreatorNo    varchar(20)    Checked
CreateDate    datetime    Checked
ReviserNo    varchar(20)    Checked
ReviseDate    datetime    Checked

tblFileSubFolder2 三层
SubjectNo    varchar(20)    Unchecked PK
SubFolderNo    int    Unchecked PK
SubFolder2No    int    Unchecked PK
SubjectType    varchar(10)    Unchecked
SubFolder2Name    varchar(30)    Checked
SubFolderOrder    tinyint    Checked
SubFolder    char(1)    Checked
CreatorNo    varchar(20)    Checked
CreateDate    datetime    Checked
ReviserNo    varchar(20)    Checked
ReviseDate    datetime    Checked

tblFileSubFolder3 四层
SubjectNo    varchar(20)    Unchecked PK
SubFolderNo    int    Unchecked PK
SubFolder2No    int    Unchecked PK
SubFolder3No    int    Unchecked PK
SubjectType    varchar(10)    Unchecked
SubFolder3Name    varchar(30)    Checked
SubFolderOrder    tinyint    Checked
SubFolder    char(1)    Checked
CreatorNo    varchar(20)    Checked
CreateDate    datetime    Checked
ReviserNo    varchar(20)    Checked
ReviseDate    datetime    Checked

tblFileSubFolder4 五层
SubjectNo    varchar(20)    Unchecked PK
SubFolderNo    int    Unchecked PK
SubFolder2No    int    Unchecked PK
SubFolder3No    int    Unchecked PK
SubFolder4No    int    Unchecked PK
SubjectType    varchar(10)    Unchecked
SubFolder4Name    varchar(30)    Checked
SubFolderOrder    tinyint    Checked
SubFolder    char(1)    Checked
CreatorNo    varchar(20)    Checked
CreateDate    datetime    Checked
ReviserNo    varchar(20)    Checked
ReviseDate    datetime    Checked

tblFileSubFolder5 六层
SubjectNo    varchar(20)    Unchecked PK
SubFolderNo    int    Unchecked PK
SubFolder2No    int    Unchecked PK
SubFolder3No    int    Unchecked PK
SubFolder4No    int    Unchecked PK
SubFolder5No    int    Unchecked PK
SubjectType    varchar(10)    Unchecked
SubFolder5Name    varchar(30)    Checked
SubFolderOrder    tinyint    Checked
CreatorNo    varchar(20)    Checked
CreateDate    datetime    Checked
ReviserNo    varchar(20)    Checked
ReviseDate    datetime    Checked

tblFileList 档案
SubjectNo    varchar(20)    Unchecked PK
SubFolderNo    int    Unchecked PK
SubFolder2No    int    Unchecked PK
SubFolder3No    int    Unchecked PK
SubFolder4No    int    Unchecked PK
SubFolder5No    int    Unchecked PK
SubjectType    varchar(10)    Unchecked
FileNo    tinyint    Checked
FileName    varchar(100)    Checked
FileMemo    varchar(300)    Checked
ShowInPublic    char(1)    Checked
DownloadCount    int    Checked
CreatorNo    varchar(20)    Checked
CreateDate    datetime    Checked
ReviserNo    varchar(20)    Checked
ReviseDate    datetime    Checked
3 回复
#2
wube2017-08-15 14:30
还是每层都要再加两个栏位?
FileNo    tinyint    Checked
FileName    varchar(100)    Checked
#3
mywisdom882017-08-15 16:22
书分类?
比如:"射雕英雄传",
按你的6层架构,你怎么入资料.
#4
wube2017-08-15 17:16
用目录分类
书本身不用分类
1