这样设计数据库和把两个表合成一张表有什么区别?
那个好一点
那个好一点
解决方案 »
- SQL行列互转效率问题
- 非同一个局域网,怎么做mssql的订阅?
- 求助关于sqlite更新blob字段的问题
- 简单的SQL问题
- 初学者提问:数据库建立的简单问题,俺不懂,谁能给个解释
- 我没有经历过什么大项目,工作经验也不足,现在手上有个项目在做,可是我们的系统分析员(先这么称呼),哎!
- 如何从一个表中把text数据完整考到另一个表中的text类型字段中!急
- 急!!怎么用DELPHI直接访问SQLSERVER数据库!不用ODBC!
- 简单问题,在线等待
- 19万的记录查询花了6分钟,sql server7为何如此不堪?请问如何提高查询速度?
- 翻译具体描述信息
- 请问如何删除表中相同字段的数据,并保留最新的一条.
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 图书价格 不为空
拆分成两个表就是查询的时候会用到JOIN.
如果经常查询的是book里面的字段可以考虑拆分为两个表.因为book表更小,查询book肯定比book + DetailedBook 合并起来的大表快
表名:书本详细信息表(DetailedBook)
表名:图书基本信息表(book)
如果按照你这两个表的字段来说的话,建议使用一个表,因为数据好多重复的,建一张表足以。
如果要是细分的话,建议图书列表可以加一个类型字段。如,该书是属于,毛邓、历史、文学、经济 之类的,
而且,把其他出版社,价格,isbn,作者 建议弄到详细表中。图书列表保留个书名,图书编号,就好了
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 书架名称