В бд test таблица users строку ip_address_create в котором будет записываться ip адрес с которого произвелось создания аккаунта. А в ip_address будет ip адрес с которого последнее время произвелась авторизация. В таблице history_ip будет хранится информация о истории входа аккаунта.
Может быть из таблицы users убрать поле ip_address_create и оставить только таблицу history_ip с полями user_id и ip_address. При выборке из этой таблицы по user_id первым будет выбираться адрес на момент создания аккаунта, поледним адрес последней авторизации. Верно? Уточните, пожалуйста, в чём Вам нужно помощь?
Лично для меня IP регистрации (конкретно регистрации) мне удобно хранить в таблице users в отельном поле (для определенных целей), а доступ к этому полю всегда доступен без доп. запросов к бд (например в профиле) А уже в статистике(логи входа), можно показывать все IP адреса входа. Тебе не нужна таблица ip_address, т.к. всю необходимую информацию можно хранить в ip_history ( время входа, ip входа, время выхода(если нужно, id аккаунта и т.д. )
Вопрос спорной. Правильно ли в реляционой БД дублировать информацию в разных таблицах, только для того чтобы обходится без доп. запросов? Однако, есть проблема более серьёзная. Допустим, что так или инаначе IP адреса входа записаны БД. Если клиент приватный, то адреса у него динамические - т.е. при каждом заходе могут быть разные.