这样设计数据库和把两个表合成一张表有什么区别?
那个好一点

解决方案 »

  1.   

    字段名 字段类型 字段说明
    DetailedBookInfoID Int 主键 不为空 
    Adminrecommend Ntext 管理员推荐   不为空 递增
    Bookabstruct Ntext 图书简介  不为空
    AuthorInfo Ntext 作者信息  不为空
    Appraise  Varchar(1000) 用户评论
    BookstoreID Int 书编号 外键 不为空
    表名:书本详细信息表(DetailedBook)表名:图书基本信息表(book)
    字段名 字段类型 字段说明
    BookID Int 主键 不为空 递增
    BookName Varchar(100) 书名 不为空
    PublisherId Int 出版社编号 外键不为空
    Author String 作者 不为空
    saleNum Int 卖出的数量  不为空
    ISBN Varchar(13) ISBN编号 不为空
    Price Momery 图书价格 不为空
      

  2.   

    合并成一个表就是方便,查询的时候不需要JOIN.
    拆分成两个表就是查询的时候会用到JOIN.
    如果经常查询的是book里面的字段可以考虑拆分为两个表.因为book表更小,查询book肯定比book + DetailedBook 合并起来的大表快
      

  3.   

    你的字段不明确,从性能上来说 两张表比一张表要好。
    表名:书本详细信息表(DetailedBook)
    表名:图书基本信息表(book)
    如果按照你这两个表的字段来说的话,建议使用一个表,因为数据好多重复的,建一张表足以。
    如果要是细分的话,建议图书列表可以加一个类型字段。如,该书是属于,毛邓、历史、文学、经济 之类的,
    而且,把其他出版社,价格,isbn,作者 建议弄到详细表中。图书列表保留个书名,图书编号,就好了
      

  4.   

    USE [libbook]
    GO
    /****** 对象:  Table [dbo].[图书类型]    脚本日期: 06/12/2011 00:56:02 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[图书类型](
    [类型编号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [类型名称] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [可借天数] [int] NULL,
     CONSTRAINT [PK_图书类型] PRIMARY KEY CLUSTERED 
    (
    [类型编号] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]GO
    SET ANSI_PADDING OFFUSE [libbook]
    GO
    /****** 对象:  Table [dbo].[图书信息]    脚本日期: 06/12/2011 00:57:06 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[图书信息](
    [条形码] [varchar](40) COLLATE Chinese_PRC_CI_AS NULL,
    [编号] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,
    [书名] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
    [类型] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [作者] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [译者] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [ISBN] [varchar](40) COLLATE Chinese_PRC_CI_AS NULL,
    [出版社] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [价格] [money] NULL,
    [页码] [int] NULL,
    [书架名称] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
    [现存量] [int] NULL,
    [库存总量] [int] NULL,
    [入库时间] [smalldatetime] NULL,
    [操作员] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL,
    [简介] [varchar](100) COLLATE Chinese_PRC_CI_AS NULL,
    [借出次数] [int] NULL,
    [是否注销] [bit] NOT NULL,
     CONSTRAINT [PK_图书信息] PRIMARY KEY CLUSTERED 
    (
    [编号] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]GO
    SET ANSI_PADDING OFF这两张表是我的图书馆管理系统中关于图书的信息所建的两张表,如果有必要还可以建张书架表,两个字段 书架id 书架名称