我正在使用Google App Engine开发Web应用程序。但是,这个问题不是针对这个平台的,而是与数据库相关和概念性的。
我现在有一个名为task
的模型。并且应该有几个步骤来完成任务。我正考虑创建另一个名为step
的模型。用户可以根据需要创建任意数量的步骤,并可以删除某个步骤,在两个步骤之间添加步骤或交换两个步骤。很容易看出这是一个(task
) - 多对(step
)关系。但问题是步骤之间的关系(主要是它们的排序)如果我用这种方式设计它就需要做很多工作。
例如,我有一个名为'去看电影的任务'并且用户可以首先为该任务创建三个步骤。 1.在线搜索好电影2.买票3.准时回家
现在让我们说模型step
有一个名为order
的属性作为int,而description
。如果用户想要删除第一步,则第二步和第三步的order
也必须改变。这看起来非常昂贵且麻烦。如果用户想要交换两个步骤,那就不容易了。
那么有更好的方法对此进行建模吗?也许数据库的某些功能适合这种情况?