1、一般情况,链接表 dep_cate 表是可以不要的,否则添加商品信息时,必须先添加dep_cate 表,操作麻烦,不实用
2、由外键能保证数据的一致性,至于前台如何避免错误数据,可以用选择框来选择,主要在前端实现。
3、思路应该没问题的 ,链接表 dep_cate 表到底要不要看需求的要求

解决方案 »

  1.   

    dep_cate还是要的前台添加的时候
    两个下拉框
    譬如选择商品大类的某一项后,自动更新商品品牌的下拉内容(dep_cate是为了添加product的方便,过滤数据)
    选择商品品牌的某一项后,也一样自动更新商品大类的下拉内容当然,也可以不要这张表,要添加的时候,就是所有商品大类选一个,所有商品品牌选一个
      

  2.   

    smalldeer(晓露) ,wcccc1(fdfd) 你们说的是一样的道理,前台我当然也是这样做的,而且早就做好了。一般情况下运行是没有问题的,而我想使程序更键壮,即使前端输入了错误的 depId,cateId对(或者在数据库中直接在product表中添加 数据时)在数据库里一样能检测到错误,那这样只在前端控制用户输入的办法就行不通了。
      

  3.   

    写个触发器
    create trigger ttt on product
    for insert
    as
    declare @intdepid int
    select @intdepid=depId from department
    declare @intcateid int
    select @intcateid=cateId from categoryif exists(select 1 from department where depId=@intdepid)
      begin
        if exists(select 1 from category where cateId=@intcateid )
          begin
            if not exists(select 1 from dep_cate where depId=@intdepid and cateId=@intcateid )
              begin
                rollback
                print ‘对应关系不存在'
              end
          end
        else
          begin
              rollback
              print 'cateId 不存在'
          end
      end
    else
      begin
      rollback
      print 'depId 不存在'
      end