Я внедряю систему учета в Codeigniter с использованием реляционной базы данных MySQL. Я сталкиваюсь с некоторыми проблемами. Я записываю все транзакции в « Таблицу транзакций », которая в терминах бухгалтерского учета может рассматриваться как Главная книга. Поскольку в моей " таблице транзакций " может быть более тысячи пользователей системы и миллиардов транзакций.
Для извлечения бухгалтерских отчетов, таких как Бухгалтерский баланс, мне нужно найти все транзакции этого конкретного пользователя, а затем выполнить другие операции, чтобы сформировать «Бухгалтерский отчет»
Теперь перейдем к вопросу, поскольку рост транзакций слишком высок, что определенно замедлит мою систему. Как я могу решить эту проблему?
Я пришел к решению, которое заключается в «закрытии счета». Если я закрываю учетные записи каждый месяц, ограничиваю пользователей на выполнение функций «Создание, обновление и удаление», тогда я смогу использовать предварительно рассчитанные значения учетных записей для своих учетных отчетов. , но я не могу ограничить пользователя ПРОСМОТРЕТЬ предыдущие транзакции, поэтому в этом случае система должна будет искать его транзакции из миллиардов транзакций, что не решает мою проблему.
Я думаю о переносе закрытых транзакций в отдельную таблицу каждого пользователя, которая может решить проблему, но моя База данных нормализована (3NF). Будет ли хорошей идеей создавать отдельные таблицы для каждого пользователя при создании учетной записи этого пользователя и управлять связью этой вновь созданной таблицы?
Изображение таблицы транзакций