Чтобы ответить на первый вопрос: он документирует отношения для справки, и большинство дизайнерских приложений создают ограничения, обеспечивающие соблюдение этих отношений.
На ваш ответ на второй вопрос нет.Если вы хотите получать информацию только из сообщений, не было бы никакой причины привлекать users_list, если он не полагается на информацию оттуда, например, хочет знать "сообщения, сделанные любыми пользователями с именем" bob "";в этом случае вы будете использовать соединение.Но если вы уже знаете идентификатор пользователя, нет никаких причин привлекать users_list.