以前做过这个,但是发现逻辑太繁杂 详情见 http://space.itpub.net/?18921771需求:像我们爱玩的QQ啊,开心啊,等等一些娱乐交友的,都会有一项不可缺少的好友分组,这些分组,可以自定义,系统也会自带一些~~,当接到这个项目时,需求要求:每个人有8个默认分组,这些分组可以删,改~~~
除了这8个,用户可以自定义分组(自定义分组也可以删,修改),分组里的好友可以删除,添加,转移到不同的组现急需高手来帮忙设计一下~~~

解决方案 »

  1.   

    这个关系确实比较复杂...
    我的看法是
    2个表,靠用户id和组id连接。
    创建新用户时,前台自动在分组表里插入8条记录
    1.修改组名。
    这个只要修改分组表中的分组名就行了2.添加组
    在分组表里添加一个分组记录。这个也不需要什么额外操作,增加一个新分组的时候,以1-8赋组id,用户自定义的分组id就用序列填充3.删除组
    对分组表建立一个触发器,当删除一条记录的时候,在好友表中找到对应的记录,将这些记录的分组id修改为8(未分组)
    “未分组”这个分组要标记成禁止删除至于组名,没必要刻意去比较,会增加系统负担。即使重名也没关系,后台是根据id来标识的,qq里也没有对分组名称有要求吧。
    可以增加一个功能:恢复默认分组。当使用这个功能的时候,查询出8个分组中用户尚未创建的分组,恢复的时候和增加分组是一样的,不一样的地方就是--不以序列填充组id,而是用默认的1-8还是说你有别的什么考虑
      

  2.   

    数据量大的话,要考虑优化了
    不过在分组表的设计上,每个用户默认有8个分组,8个分组里又有对应的好友信息,又不想储存8条记录。。那么在分组表里插入自定义的分组信息和默认分组中被删除的分组id?
    还是再建个表,存储默认分组中被删除的默认分组的id?那么默认分组最好设为不能修改,能修改的话和自定义分组又有什么区别。这样的话先前的分组表就可以改为自定义分组表,以分组id字段(序列生成)作为主键和唯一关联字段