Вы хотите отделить платежные транзакции от своего списка пользователей, потому что вы хотите иметь возможность просматривать историю продлений.У вас могут быть пользователи, которые платят, запрашивают возврат, платят снова, срок их членства истекает, а затем обновляется - и так далее.Без ведения таблицы транзакций, в которой ведется история этого действия, вы можете оказаться не в состоянии распутать проблему обслуживания клиентов или бухгалтерского учета.
Предполагая, что у вас есть только один вид платного членства (что может не являться будущим- безопасное предположение) и, предполагая, что вы установили надлежащие процедурные элементы управления, такие как использование хранимых процедур или триггеров для синхронизации данных в транзакционных оболочках, вы можете денормализовать тип членства и быть активными до даты в таблице USERS.Этот тип избыточности может помочь вам повысить производительность, но это также потенциально очень рискованно, если вы разрешите избыточным данным синхронизироваться.Я бы рекомендовал попробовать это без избыточности, а затем посмотреть, есть ли у вас практические проблемы с производительностью, прежде чем прибегать к использованию денормализованных полей в ПОЛЬЗОВАТЕЛЯХ.