我像写个图书管理系统 但是不是很清楚 数据库的设计
比如 要哪几张表 哪几个字段
希望大家给点建议 不要实例代码 谢谢
下面的这是我写的 麻烦大家看看  看有什么地方不是很合理的
我困惑的地方是 借书的关系 不知道收钱应该是怎么划分的
是直接先收押金 还是 每天自动扣除  或者 他换书的时候在一起结账
是否应该加一张表来 整理 账目
use master
go
if exists(select 1 from sysdatabases where name='HitchBooksMIS')
    begin
        drop database HitchBooksMIS
    end
go
create database HitchBooksMIS
go
use HitchBooksMIS
go
-- 管理员表
create Table Administer
(
AID int primary key  ,
Apwd nvarchar(10),
Aname nvarchar(6)
)-- 权限功能
create Table Powers
(
TID int primary key ,
Tname nvarchar(6) 
)-- 管理员权限
create Table AdministerPower
(
AID int foreign key references Administer(AID),
TID int foreign key references Powers(TID)
)-- 会员类别表 
create Table MemberType 
(
TID int primary key  identity(1,1) ,
Tname nvarchar(10),
TborrowDay int,
Tborrowmoney money,
Tamends money,
Tbooksum int
)
-- 会员表
create Table BooksUser
(
UID int primary key  identity(1,1),
Uname nvarchar(6),
Upwd nvarchar(10),
Usex char(2),
Uphone int,
UmemberID int foreign key references  MemberType(TID),
Uidentily int ,
UdamageBook int ,
UloseBook int

)-- 图书类别表
create Table BooksType
(
TID int primary key identity(1,1) ,
Tname nvarchar(30),
Tlocation nvarchar(30),
)-- 图书表
create Table Books
(
BID int primary key  identity(1,1) ,
Bname nvarchar(30),
Babbreviation nvarchar(10),
Bauthor nvarchar(10),
Bpublisher  nvarchar(22),
BimagePath nvarchar(200),
Bdate smalldatetime ,
Bsum int ,
BTypeID int foreign key references  BooksType(TID),
Bhot int
)-- 借书表
create Table BorrowBooks
(
UID int foreign key references BooksUser(UID) ,
BID int foreign key references Books(BID),
BdisposeID int foreign key references Administer(AID),
Bborrowdate smalldatetime ,
Breturned smalldatetime ,
IsReturned int
)

解决方案 »

  1.   

    借阅记录中设置押金字段,根据还书天和每天金额计算,是否足够
    到51aspx.com里看看
      

  2.   

    use master
    go
    if exists(select 1 from sysdatabases where name='HitchBooksMIS')
        begin
            drop database HitchBooksMIS
        end
    go
    create database HitchBooksMIS
    go
    use HitchBooksMIS
    go
    -- 管理员表
    create Table Administer
    (
    AID int primary key  ,
    Apwd nvarchar(10),
    Aname nvarchar(6)
    )-- 权限功能
    create Table Powers
    (
    TID int primary key ,
    Tname nvarchar(6) 
    )-- 管理员权限
    create Table AdministerPower
    (
    AID int foreign key references Administer(AID),
    TID int foreign key references Powers(TID)
    )-- 会员类别表 
    create Table MemberType 
    (
    TID int primary key  identity(1,1) ,
    Tname nvarchar(10),
    TborrowDay int,
    Tinterest money,
    Tamends money,
    TbookAmount int
    )
    -- 会员表
    create Table BooksUser
    (
    UID int primary key  identity(1,1),
    Uname nvarchar(6),
    Upwd nvarchar(10),
    Usex char(2),
    Uphone int,
    UmemberID int foreign key references  MemberType(TID),
    Uidentily int ,
    UdamageBook int ,
    UloseBook int,
    Ubalance  money

    )-- 图书类别表
    create Table BooksType
    (
    TID int primary key identity(1,1) ,
    Tname nvarchar(30),
    Tlocation nvarchar(30),
    )-- 图书表
    create Table Books
    (
    BID int primary key  identity(1,1) ,
    Bname nvarchar(30),
    Babbreviation nvarchar(10),
    Bauthor nvarchar(10),
    Bpublisher  nvarchar(22),
    BimagePath nvarchar(200),
    Bdate smalldatetime ,
    Bamount int ,
    BTypeID int foreign key references  BooksType(TID),
    Bhot int
    )
    -- 借书状态
    create Table ReturnedState
    (
    RID int primary key  identity(1,1) ,
    Rname nvarchar(10)
    )-- 借书表
    create Table BorrowBooks
    (
    Wateraccount  int primary key  identity(1,1) ,
    UID int foreign key references BooksUser(UID) ,
    BID int foreign key references Books(BID),
    AID int foreign key references Administer(AID),
    BborrowDate smalldatetime ,
    BreturnedDate smalldatetime ,
    BisReturnedState int foreign key references ReturnedState(RID)
    )我的借书表 和 图书号 是主外键关系啊
    不过引文发问题的时候太着急了 所以没怎么看数据库 后来发现有些地方写错了 
    不过我现在已经改了  不知道这样可以吗 
    存储 账目的表 不知道 应该有什么字段 借阅记录中设置押金字段,根据还书天和每天金额计算,是否足够
    我看懂了  你是说 有三种收钱的方式对吧
    第1种是 直接在表里价格字段 专门来负责押金
    第2种是 当换书的时候在一起结算时吧
    第3种 是 每天自动更新一次 对吧还有更好的建议吗?
      

  3.   

    你没想到会员的情况!
    应该再加一个VIP打折字段
    根据天数来定义结账的款额,
    如果超出规定的天数,在规定