迪卡儿积的一种妙用

   跟据客户开发了个网上订货平台。

   要求不同用户所能订购的品牌不同所以必须过滤不同用户的品牌。 当时建表是  品牌表、用户品牌表、用户表 。 其中“用户品牌表”保存了每个用户所能订货的品牌。原本定义好品牌之后基本上不会变的。

  今天客户突然说要给每一个用户同时添加另外两个品牌,这两个品牌是今天才加上的。

  当时想啊,给一个用户添加两个品牌那很空间,两条 insert 就可以了,但人家现在的用户达到6000多人了,那怎么添加呢?

  我想这时就可以用到迪卡儿积了。

  平时查询的时候我们特别注意别出现迪卡儿积。

  我现在就是利用在迪卡儿积来实现用户品牌添加的。

  insert into 用户品牌表(品牌ID,用户ID) select 品牌ID,用户ID from 品牌表,用户表 where 品牌ID in (新增加的两个品牌的ID)

  这样就实现了给所有用户同时添加两个品牌了。

  当然我感觉这种作法怪怪的。 应该有更科学的方法才对。只是在下学识太薄还不知道。

 

 

posted @ 2010-09-16 17:27  wunaigong  阅读(308)  评论(0编辑  收藏  举报