如何让人们同时编辑多个帖子而不会覆盖每个帖子?

时间:2016-08-20 11:51:00

标签: session coldfusion session-variables session-cookies session-state

我有一个网站,人们可以创建帖子并提交它们(比如在Stackoverflow和Facebook上)。

用户可以做的一件事是在提交帖子之前附上照片。因此,只要附加了照片(使用AJAX),就会在后端数据库表中为正在处理并存储在用户{{1}中的帖子创建一个新的PostID。范围例如SESSION

即使照片没有附加,也会发生同样的事情,除非它会在帖子的最终提交中创建SESSION.LoggedIn.PostID = rsInsertedPost.PostID

我将其存储在SESSION范围中的原因是因为刚刚创建的PostID用于后端应用程序中的多个其他区域(在我的情况下为CFC组件)。例如,它会将与其帖子相关联的用户的标签插入到单独的表PostID中,如下所示:

dbo.PostTags

处理完表单提交后,它会从用户的会话中删除PostID | Tag 44 ColdFusion 44 Programming 44 SQL

我即将遇到的问题是当用户打开多个浏览器窗口并决定同时开始处理多个帖子时。 SESSION的PostID值将继续被新创建的值覆盖,这意味着如果他们决定返回其他浏览器标签并提交帖子,则最终会影响最后创建的帖子。

什么是克服人们当前正在按窗口工作的PostID跟踪问题的好方法。是否有一些其他的唯一属性可以存储在SESSION和PostID旁边,以便每个浏览器窗口只打开那个会影响那个?

1 个答案:

答案 0 :(得分:0)

我喜欢使用UUID。然后我肯定永远不会使用相同的ID两次,甚至不跨数据库表。 因此,不要将PostID设置为数字(通常为1 +数据库表中的最后一个ID),而是使用#createUUID()#