现在一个asp.net 系统 要用到两个MSSQL库。1)MainDB(主库):
 包括
  产品类别表ProductType(int id,varchar(100) typeName)
  产品表Product(int id, varchar(100) productName,int typeId)[其中这里的typeId字段关联ProductType表中的Id]
   
2)AdDB(广告库)
  包括(目前)
   广告表Ad(int id, varchar(100) AdName,typeId)[这里的TypeId是产品类别]问题就在这里了。。“广告表的TypeId字段”是关联MainDB库表的ProductTYpe表的Id,还是在AdDB在库中间一张和MainDB库中一模一样的ProductType表呢???目前我是在net的开发环境下做的这个项目。。请有经验的朋友帮我分析一下,衷心希望你们能给我一方案和与之对应的理由?谢谢

解决方案 »

  1.   

    我个人觉得AdDB(广告库) 
    不需要TypeId 你可以关联产品表Product的id 因为通过表Product的id就可以找到产品类别TypeId
      

  2.   


    这里产品表Product与广告表没有任何联系的。。逻辑上也没然后联系的
      

  3.   


    1)MainDB(主库): 
    包括 
      产品类别表ProductType(int id,varchar(100) typeName) 
      产品表Product(int id, varchar(100) productName,int typeId)[其中这里的typeId字段关联ProductType表中的Id] 
      
    2)AdDB(广告库) 
      包括(目前) 
      广告表Ad(int id, varchar(100) AdName,typeId)[这里的TypeId是产品类别] 为什么要用Ad的typeID关联ProductType的id呢?
    广告表应该关联产品表,即:Product的ID
    通过产品的ID就能得到产品所属类型.这样逻辑才对的
      

  4.   

    n你的意思就是有了AdDB(广告库) 
    才有产品表Product 那你的产品表Product 为什么还关联产品类别表ProductType呢 不如直接关联AdDB(广告库) ,再AdDB(广告库)关联产品类别表ProductType 这样不是更好吗
      

  5.   

    这个和库到没多大关系,你只需保证广告表存的是你产品表的ID的就行,不要去关联产品类型表的因为产品表有类型表的id所以你查询的时候通过广告表关联的产品表id(ProductID)就可以得到当前产品所属的typeid
    通过typeid就有typename了
      

  6.   

    那就关联MainDB库表的ProductTYpe表的Id,如果再建一张和MainDB库中一模一样的ProductType表没这必要了吧 反正关系又不多,不会影响性能的,而且代码实现起来也容易
      

  7.   

    楼主,我看到ad和product在两个数据库的时候,就在想他们有没有关联,既然你明确没有关联了。为什么还会觉得可以去关联ad和pro的type呢?
    主键外联必须是存在数据依赖,不是节省不节省一个表的问题。
      

  8.   

    关联MainDB库表的ProductTYpe表的Id
    这样就可以
      

  9.   

    如果,我要去关联MainDB的产品类型表,那么就为了这个小功能,我在代码中就显得不够干净。
      

  10.   

    如果不去关联,在AdDB库重新建一张这个表,又显得很冗余。哎