首页 新闻 会员 周边 捐助

求高效程序的表结构设计

0
悬赏园豆:10 [已关闭问题]

求高效程序的表结构设计

现假设有一在线商品预订的平台,该平台可以提供全国每个城市所加盟到平台中的商家的产品,若有个栏目为"指定商家的商品"的栏目,有以下要求:

1.该栏目显示的商品都为用户自己所设置为收藏的商家产品,

2.买家用户注册到平台的时候,平台中所有的商家都是默认为被收藏进来的(这样有利于平台的推广,可以让后来加入到平台的商家可以默认加入到该栏目中)

3.若用户有不需要收藏的商家,则用户可以自行取消收藏,这样这家商家的产品就不会在这个栏目显示了

我现在的设计是:使用1个表来存储被取消收藏的商家,这样这个栏目在取商品数据的时候,再把这个表中的商家的商品给排除掉.但这样的设计有个不好的情况就是sql查询效率就不高了,因为查询是用来排除数据的,要使用到 not in 或 not exitis  ,索引等就无法使用了

需要求助的就是有什么好的设计方案可以避免这样的设计.

表结构主要字段设计如下:

商品表(tbl_Product):

ID  商品编号  char(36),

CompanyID 商家的公司ID

.......

取消收藏的关联表(tbl_CancelFav):

BuyUserId  int   买家用户ID

CompanyID  被取消收藏的商家公司ID

 

查询sql语句大致为:

select * from tbl_Product where CompanyID  not in (select CompanyID from tbl_CancelFav where BuyUserId=@BuyUserId)

syqclove的主页 syqclove | 初学一级 | 园豆:190
提问于:2010-02-06 23:42
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册