Отображать детали, когда пользователь щелкает строку таблицы - PullRequest
0 голосов
/ 15 мая 2018

В моей базе данных есть следующие таблицы:

  • Студент (идентификатор_пользователя, адрес электронной почты, имя, ...)
  • Курс (идентификатор_курса, имя_курса,...)
  • Зачисление (student_id, course_id, оценки, ...)


Хочу реализовать эту функциональность:

  1. Когда администратор хочет найти список всех студентов в определенном городе, список отображается в виде таблицы HTML.

Это можно сделать, просто запросив таблицу учеников.

Когда администратор нажимает на любую строку (из таблицы, которую мы отобразили в 1.), тогда администратор должен видеть список всех курсов, в которые зачислен студент.

Мой вопрос: какя должен реализовать это?
Я могу придумать следующие способы:
Способ 1:
https://stackoverflow.com/a/45135144/3494107 Мне нужен какой-то способ, чтобы определить, на какую строку нажал администратор, для этого я могу пройтиstudent_id также в таблице в результате для 1 (отображать список всех учеников), но поскольку student_id не передает администратору никакой информации о ученике, я могу просто скрыть ее в атрибуте data-* <tr> или в <a href=/enrollment/${student_id}>, чтобыЯ могу использовать это, чтобы определить, на какую строку нажал администратор.Некоторые из моего друга сказали мне, что я не должен выставлять суррогатный ключ, это плохо для безопасности.Так есть ли какой-нибудь способ, которым я могу связать этот student_id со строкой таблицы, но скрыть от пользователя, или это нормально, чтобы предоставить контент суррогатного ключа пользователю?
Способ 2:
Я могу создать временную таблицу, содержащую всех студентов из определенного города в БД, и присвоить ей идентификатор строки.Теперь в результате я могу добавить этот идентификатор строки для каждой строки в атрибут data- *.Этот идентификатор строки не содержит никакой информации о том, что является фактическим student_id, и я могу использовать этот идентификатор строки для запроса временной таблицы, чтобы получить фактический идентификатор student_id, который я могу использовать для поиска в таблице регистрации.Теперь мне нужно удалить эту временную таблицу, когда пользователь уходит с текущей страницы (перейти к другим функциям), теперь как мне определить, когда пользователь ушел с этой страницы?

Я хочу понять, какие проблемы с безопасностью могут возникнуть, если я предоставлю пользователю суррогатный ключ?

1 Ответ

0 голосов
/ 15 мая 2018

Никаких проблем с безопасностью как таковых, если вы выставите student_id, но с точки зрения бизнеса это не слишком приемлемо.

Если эти таблицы видят только администраторы, то это не проблема в любом случае.

Если они видны даже гостю, лучше не выставлять student_id. Не для безопасности вашей базы данных, но для безопасности вашего бизнеса. Это может раскрыть вашу силу и слабость.

Вместо этого вы можете использовать student_registration_no. Это может быть медленно, учитывая запись VARCHAR, но не может быть обнаружено человеком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...