data-modeling - 允许用户编辑数据和批准者批准或拒绝更改的逻辑数据模型
问题描述
正如标题上所说,我有一个项目需要这样做。如何实现逻辑数据模型?
数据的实际性质并不重要。假设我正在建立一个学校数据库,教师可以更新学生的分数和其他详细信息。更新后,这些将存储在数据库中,但更改将等待校长批准或拒绝。
请记住,老师可以在一节课中进行许多更改,例如更改约翰的地址,然后输入莎莉的最新数学成绩,最后更新下个月的时间表。校长在登录后,应该会看到一系列未经批准的更改,逐一检查,然后批准或拒绝。
假设一旦琼斯先生将莎莉的数学分数从 90 更改为 88,那么只有琼斯先生和校长可以看到这种变化。其他人仍然会看到 90。史密斯夫人仍然可以对 Sally 的官方分数 (90) 进行更多更改,因此当校长登录时,她/他可能会看到两个更新:
- 琼斯先生的更新从 90 到 88。
- 史密斯夫人的更新从 90 到 85。
校长会知道哪个是在哪个之后,并决定更新哪个,拒绝哪个。
提前致谢。
PS。我特别想知道公共领域是否已经有任何模式可用。
解决方案
我的方法是创建一个控制表。它将存储所有批准详细信息。只有 head master 才能在控制表中添加行。
此外,创建一个临时表来存储用户输入直到最终决定。此表应仅对具有更新/插入访问权限的用户可见。
在您的主表中,创建一个触发器以将数据从登台插入到主表中,每当校长进行提交时。
推荐阅读
- python - 使用 Selenium 抓取的内容导出 Scrapy 项目
- git - 响应不创建状态检查的 pull_request 的 GitHub 操作?
- java - 如何将 5 个线程的结果放入标签文本中?
- animation - 如何为梯形上的两个以上点设置动画?
- hadoop - HDFS 磁盘使用情况是否反映了我 PC 上本地硬盘空间的使用情况?
- javascript - 将字符串数组传递给字符串文字中的函数
- python - 从 3d numpy 数组中删除 2d 切片
- haskell - 简单的 Liquidhaskell 示例失败了预期的行为
- javascript - 滚动到结束页面时的活动功能
- sql-server - 创建2个表ID,当第一个递增时第二个重新启动