需求如下:
多个帐号集中到一个帐号中缴款,比如有ABCD等10个帐号集中到S这个帐号上去缴款,S与ABCD等就是1对多的关系,依此类推,也有其他的几个或者几十个帐号集中到又某一个帐号上缴款,如果只是简单的存储他们的关系,直接一个表,字段father_id, child_id两个即可,但是要考虑到此两个字段要修改,要新增加,要能实现顺序的对调(这个只针对child_id),在这种情况下,我的数据库要如何设计及页面如何实现才能比较?不知道大家做过类似的应用没有,有的话请不吝指教,没有的也可以谈你们的思路。我目前是让对方把关系整理好放在Excel中导入更新到数据库中,这样只要用到此两个字段即可,但是考虑到小变更都要重新整理关系再导入客户就不愿意了,最好还是要做成页面比较直观的增删改查操作,并能调整各个child_id的顺序,谢谢大家
多个帐号集中到一个帐号中缴款,比如有ABCD等10个帐号集中到S这个帐号上去缴款,S与ABCD等就是1对多的关系,依此类推,也有其他的几个或者几十个帐号集中到又某一个帐号上缴款,如果只是简单的存储他们的关系,直接一个表,字段father_id, child_id两个即可,但是要考虑到此两个字段要修改,要新增加,要能实现顺序的对调(这个只针对child_id),在这种情况下,我的数据库要如何设计及页面如何实现才能比较?不知道大家做过类似的应用没有,有的话请不吝指教,没有的也可以谈你们的思路。我目前是让对方把关系整理好放在Excel中导入更新到数据库中,这样只要用到此两个字段即可,但是考虑到小变更都要重新整理关系再导入客户就不愿意了,最好还是要做成页面比较直观的增删改查操作,并能调整各个child_id的顺序,谢谢大家
如果是的话,你可以考虑下把你的child表设计成一个链表的形式。前一条记录保存后一条记录的id。2.另外一种方案,还是用现在的结构,加上orderid字段。
其实插入数据的时候很简单,假设你要插得orderid=3,那先执行一条sql:
update child set orderid=orderid+1 where orderid >=3
然后插你的那条记录就行。相比较,其实后一种方式的编码量会更少,也更易实现。前一种方法还得递归调用。