Я знаю, что этот вопрос задавали миллион раз, но я не могу найти тот, который действительно дает мне хорошее понимание того, как работают отношения в модуле ORM Kohana.
У меня есть база данных с 5 таблицами:
approved_submissions
-submission_id
-contents
favorites
-user_id
-submission_id
ratings
-user_id
-submission_id
-rating
users
-user_id
votes
-user_id
-submission_id
-vote
Прямо сейчас favorites
, ratings
и votes
имеют первичный ключ, который состоит из каждого столбца в таблице, чтобы пользователь не отдавал предпочтение одному и тому же submission_id
несколько раз, пользователь не голосовал за один и тот же submission_id
несколько раз и т. д. Я также считаю, что это поля устанавливаются с использованием внешних ключей, которые ссылаются на approved_submissions
и users
, чтобы предотвратить наличие недопустимых данных в соответствующих полях.
Используя модуль БД, я могу без проблем получить доступ к этим таблицам и обновить их. Я действительно чувствую, что ORM может предложить более мощный и доступный способ выполнения тех же задач с использованием меньшего количества кода.
Можете ли вы продемонстрировать, как я могу обновить информацию о голосовании пользователя на submission_id
? Пользователь удаляет избранное submission_id
? Пользователь меняет свой рейтинг на определенном submission_id
?
Кроме того, нужно ли мне вносить изменения в структуру моей базы данных или все в порядке?