【发布时间】:2010-06-23 05:43:23
【问题描述】:
我有以下表格:
======================= =======================
| galleries | | images |
|---------------------| |---------------------|
| PK | gallery_id |<--\ | PK | image_id |
| | name | \ | | title |
| | description | \ | | description |
| | max_images | \ | | filename |
======================= \-->| FK | gallery_id |
=======================
我需要实现一种将与图库关联的图像按特定顺序排序的方法。据我了解,关系数据库不是为分层排序而设计的。
我也希望为并发的可能性做好准备,尽管它极不可能在我当前的项目中成为问题,因为它是一个单用户应用程序。 (所以,这里的优先级是处理允许用户重新排列顺序)。
我不确定解决此问题的最佳方法,因为我从未在数据库中实现排序,并且对并发不熟悉。因此,我已经阅读了有关锁定 MySQL 表的信息,但不确定这是否是我应该实施它的情况。
这是我的两个想法:
将名为
order_num的列添加到images表中。锁定表格并允许客户端重新排列图像的顺序,然后更新表格并解锁。在
images表中添加一个名为order_num的列(就像上面的想法1)。允许客户端一次更新一个图像的位置而不锁定。
谢谢!
【问题讨论】:
标签: php mysql database-design concurrency rdbms