我有一个 MySQL 表,其中包含属于公司和个人(客户)的电话号码。每个客户可以有多个电话号码,并且他们通常希望它们按特定顺序列出,因此该表有一个sequence
字段可以根据每个客户的偏好对他们的电话号码进行排序。这些字段是:
parent_id
- 字符sequence
- 微小的area_code
- 细绳number
- 细绳
主键是 和 的parent_id
组合sequence
。
到目前为止,一切都很好。当我想按顺序向上移动一个数字或删除一个数字时,就会出现“问题”。
当向上移动一个数字时,我这样做的方式(使用 PHP)是将该记录更改sequence
为 0(客户的第一个电话号码通常为 1,我为此使用 0),然后将前面的数字增加sequence
1,然后设置原来的记录sequence
比原来少1。换句话说,sequence
与前面的电话号码交换,但需要三个查询。
删除电话号码时,我删除了该记录,然后我必须重新排序该客户剩余的电话号码,以免丢失sequence
。这取决于客户有多少电话号码,但可以是多个查询。
我想知道是否有更有效的方法来做到这一点。
提前致谢!