Prevent two users from editing the same data

前端 未结 4 1913
醉梦人生
醉梦人生 2021-01-13 18:46

I have seen a feature in different web applications including Wordpress (not sure?) that warns a user if he/she opens an article/post/page/whatever from the database, while

相关标签:
4条回答
  • 2021-01-13 19:09

    Sounds like it will work fine. If you want to denormalize this and remove the extra Events table, just add a UserId and Timestamp field to the Articles table, as that is all you really need.

    You can easily check if the UserId doesn't match and if the Timestamp is less than 100 seconds old, then show the message.

    This way, you won't have to do any deletions on a separate table.

    0 讨论(0)
  • 2021-01-13 19:13

    I'd just add that you could have an AJAX query fire every minute or so if something has been done on the page to update the timestamp.

    0 讨论(0)
  • 2021-01-13 19:15

    Does editing an article always take less than 100 seconds ?

    0 讨论(0)
  • 2021-01-13 19:19

    Yeah, that's great and should work fine.

    In addition, I'd add the possibility for user B to break the lock - if that's at all wanted!

    That is, the possibility to replace A's lock by B's. This way, you could avoid the time restraint, and they would see 'Hey, this is being edited by A, and this lock is XXX seconds/minutes old. Do you want to break this lock?'.

    With nice users (i.e. no malicious admins), this approach may be better than having just 100 seconds to edit something - sometimes you just need more time.

    0 讨论(0)
提交回复
热议问题