Я знаю, что этот вопрос задавался миллион раз, но я не могу найти тот, который действительно дает мне хорошее понимание того, как работают отношения в модуле ORM Коханы.
У меня есть база данных с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
?
Кроме того, нужно ли мне вносить изменения в структуру моей базы данных или все в порядке, как есть?