Отказ от ответственности: я не создавал эти таблицы и знаю, что они не лучший способ хранения этих данных. Мне нужен совет о том, как лучше всего справиться с ситуацией.
У меня есть две таблицы MySQL:
`students`
id int; primary, unique
prof1_id varchar
prof2_id varchar
prof3_id varchar
`professors`
id int; primary, unique, auto-increment
username varchar
fname varchar
fname varchar
students_id int
comment text
Имя пользователя профессора может быть в любом из трех последних столбцов таблицы students
. Профессорам нужно будет предоставить один комментарий для каждого студента, у которого они есть в строке в таблице students
.
Приложение, являющееся интерфейсом этой базы данных, ожидает еще два столбца в таблице professors
: student_id и comment. Поскольку у каждого студента может быть 3 профессора в своем ряду, новые строки необходимо будет добавлять к professors
всякий раз, когда они перечислены для нескольких студентов. Это означает, что поле id professors
необходимо будет автоматически увеличивать для каждого нового комментария студента.
Каков наилучший способ выполнить эту передачу данных с помощью запроса MySQL? Я пытался смотреть на UPDATE в сочетании с JOIN, но я не уверен, что есть даже правильный способ сделать это. Кроме того, нужно ли мне создать еще один первичный ключ для professors
, поскольку несколько строк будут иметь одинаковый идентификатор?
Я подозреваю, что VIEW может быть лучшим способом сделать это, но приложение на внешнем интерфейсе ожидает, что информация будет храниться в таблице professors
.
Еще одна вещь, которую я рассматривал, состояла в том, что я мог бы создать новую таблицу, соединив две таблицы и имея первичный ключ из двух столбцов, Students.id, Professor.id.
Спасибо!