【问题标题】:A Web-based Database Simulator for students面向学生的基于 Web 的数据库模拟器
【发布时间】:2018-04-29 16:13:34
【问题描述】:

我的任务是开发一个基于 Web 的 SQL 模拟器,这与 SQL Fiddle 或 W3Schools 的 SQL Tryit 编辑器上的模拟器非常相似。以下是对模拟器的要求:

  • 多名学生将同时使用模拟器。
  • 教师应该能够查看或跟踪他们的更改和查询。
  • 应包含 DDL(例如,CREATE、ALTER、DROP DATABASES 和 TABLES),当然会强制执行某些特权,以免破坏数据库。

而且直接使用 MySQL 的模拟显然是行不通的。因此,对于任何对如何进行此操作有建议的人,这将是非常棒的。

【问题讨论】:

  • 你有没有尝试过?我们不是来做你的工作的……
  • 是的,直接使用 MySQL 的方式,而且由于我认为很多用户会使用数据库,因此很难正确跟踪学生所做的事情。你怎么看? @Wernerson
  • @Wernerson 我只是在征求关于如何去做的建议,因为我没有想法

标签: html mysql database laravel browser


【解决方案1】:

嗯,这是一个相当艰巨的任务......

我会尝试这样的方法:

  • 根据学生的任务创建一个包含一些条目和表格的示例数据库

  • 每当学生登录并启动任务时,为该特定用户复制此示例数据库

  • 为视图中的所有 MySQL 命令创建一个输入字段并创建一个执行按钮

  • 每当学生点击执行时:将他的输入和当前数据库状态记录到日志中,并在为用户创建的数据库上执行命令并返回您从 MySQL 获得的返回值(错误、消息或选择)给用户

这种方法既简单又可靠,因为学生不能损害除自己之外的其他数据库(前提是正确配置了数据库权限),如果他搞砸了,他可以从示例数据库中恢复数据库。

它也应该满足你的要求:

  • 多个学生可以同时工作:检查

  • 教师可以跟踪他们的变化:检查

  • DDL 是可能的,学生除了自己的 DB 之外不能伤害任何东西:Check

【讨论】:

  • 我想我会试试这个。但是为这个特定用户复制这个示例数据库是什么意思呢?例如,为学生创建一个新数据库?还有一件事,我认为这与用户权限、命令、数据库及其表本身有关,我说得对吗?这真的很有用,伙计。非常感谢@Wernerson。
  • 是的,我的意思是复制是为用户创建一个新数据库,其中包含完全相同的表和记录。然后授予用户此(且仅此)数据库的所有权限。当然,您必须为每个用户创建一个新的数据库用户,并记住,您必须在后端代码中使用此数据库用户。如果您还有其他问题,请询问:)
猜你喜欢
  • 1970-01-01
  • 2021-04-06
  • 2015-06-25
  • 1970-01-01
  • 1970-01-01
  • 2011-05-11
  • 2022-10-02
  • 2015-02-26
  • 1970-01-01
相关资源
最近更新 更多