用户单击表行时显示详细信息

3vpjnl9f  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(337)

我的数据库中有以下表:
学生(学号、电子邮件、姓名……)
课程(课程id、课程名称…)
报名(学号、课程号、分数等)
我想实现以下功能:
当管理员想要搜索特定城市所有学生的列表时,列表显示为html表格。
这可以通过查询student表来实现。
当管理员点击任何一行(从我们在1中显示的表格)时,管理员应该看到学生已经注册的所有课程的列表。
我的问题是我应该如何实现这一点?
我可以想出以下方法:
方式1:
https://stackoverflow.com/a/45135144/3494107 我需要有一些方法来确定哪一行管理员已点击,为此,我可以传递学生的id也在表中的结果为1(显示所有学生的名单),但由于学生的id没有传达任何信息给管理员关于学生我可以把它藏在 data-* 的属性 <tr> 或在 <a href=/enrollment/${student_id}> 这样我就可以用它来识别管理员点击了哪一行。我的一些朋友告诉我,我不应该暴露代理密钥,这是不利于安全的。那么,有没有什么方法可以将这个student\u id与表行关联起来,但对用户隐藏,或者可以向用户公开代理键内容?
方式2:
我可以在db中创建一个临时表,其中包含来自特定城市的所有学生,并为其分配行id。现在,我可以将每一行的行id添加到data-*属性中。此行id不传递有关实际学生id的任何信息,我可以使用此行id查询临时表以获取实际学生id,我可以使用该id在注册表中搜索。现在我需要在用户离开当前页面(转到其他功能)时删除此临时表,现在我应该如何检测用户何时离开此页面?
我想知道,如果我向用户公开代理密钥,会有什么安全问题?

gdx19jrr

gdx19jrr1#

如果你暴露了 student_id 但从商业Angular 来看,这是不可接受的。
如果这些表只由管理员查看,那么这两种方式都不是问题。
如果客人也能看到这些东西,那么最好不要把它们暴露出来 student_id . 不是为了数据库的安全,而是为了企业的安全。它可能会暴露你的长处和短处。
你可以用 student_registration_no 相反。考虑到 VARCHAR 进入,但不能被人类察觉。

相关问题