关于数据库设计,为什么采取主从表结构?
就拿你所例举的例子来说,一张入库单可能对用多个物料,如果不是采用主从表的形式,那么你的主表的数据就会有大量的重复。通常有多少物料就会重复多少次。这对系统的资源是很大的浪费。其实这种情况在数据库基础的知识学习当中是有专门的范式约束,可以避免的。 主从表的关联,一般是在从表中添加一个主表的主键字段作为从表的外键,比如入库单号。这样主从表就可以建立一对多的对应关系了。
完全可以不需要的。
之所以搞出个主从表,是为了加快数据的查询,减少数据的冗余。
表与表的联系是通过外码进行的。
你要是搞个小型数据库可以只用一个表。但是字段要是多了,你会发现很难管理或者冗余过大。
按照数据库设计理论,只要符合3NF的就已经很好了。多数人设计成一个表,很大程度上不可能称为3NF,所以要进行分解。
select * from userInfo inner join bookInfo on
userInfo.id=bookInfo.id
where userInfo.id between (PageNum-1)*PageSize and ((PageNum-1)*PageSize)+PageSize)
PageNum 用户翻到的当前页
PageSize 每页的最大行数
(PageNum-1)*PageSize 一个算法,只是算出当前页的第一条数据
((PageNum-1)*PageSize)+PageSize) 算出当前页的最后一条数据
最好的办法是 用 RowNumber在数据库里分页
如果是对Gridview 的数据源 dataset分页也可以(不过这样不科学。。。)
int beginPage=(PageNum-1)*PageSize //翻页后的第一条数据
int endPage=((PageNum-1)*PageSize)+PageSize) //翻页后的最后一条数据
for(int i=beginPagei<endPagei++)
{
赋值给一个新的dataset
}
然后把新的dataset交给 Gridview