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

最后发布: 2018-05-15 17:45:25


问题

我的数据库中有以下表格:

  • 学生(student_id,电子邮件,姓名等)
  • 课程(course_id,course_name等)
  • 报名(student_id,course_id,分数,...)


我要实现此功能:

  1. 当管理员想要搜索特定城市的所有学生的列表时,该列表将显示为HTML表。

这可以通过仅查询学生表来实现。

  1. 当管理员单击任何行(从1中显示的表中)时,管理员应查看该学生已注册的所有课程的列表。

我的问题是我应该如何实施?
我可以想到以下几种方式:
方法1:
https://stackoverflow.com/a/45135144/3494107我需要某种方法来识别管理员单击的行,为此,我也可以在表格中将Student_id传递给结果1(显示所有学生的列表),由于student_id不会向管理员传达有关学生的任何信息,因此我可以将其隐藏在<tr> data-*属性中或<a href=/enrollment/${student_id}>以便我可以使用它来标识哪个行管理员点击了。 我的一些朋友告诉我,我不应该公开代理密钥,这对安全性不利。 因此,有什么方法可以将此student_id与表行相关联但对用户隐藏,还是可以向用户公开替代键内容?
方式2:
我可以创建一个临时表,其中包含来自DB中特定城市的所有学生,并为其分配行ID。 现在,我可以将每行的行ID添加到data- *属性中。 该行ID并未传达有关什么是实际的student_id的任何信息,我可以使用此行ID查询临时表以获取可以用于在注册表中搜索的实际的student_id。 现在,当用户离开当前页面(转到其他功能)时,我需要删除此临时表,现在我应该如何检测用户何时离开此页面?

我想了解如果向用户公开代理密钥会遇到什么安全问题?

mysql node.js html5 security web
回答

如果公开了student_id ,则不会出现任何安全问题,但是从业务角度来看,这是不可接受的。

如果这些表仅由管理员查看,则无论哪种方式都不是问题。

如果甚至访客都可以看到这些内容,那么最好不要公开student_id 不是为了数据库的安全,而是为了企业的安全。 它可能会暴露出您的优点和缺点。

您可以改用student_registration_no 考虑到VARCHAR条目,它可能很慢,但无法被人检测到。