Я разрабатываю мобильное приложение, в котором есть встроенные покупки как для iOS (App Store), так и для Android (Google Play). На серверной стороне мне нужно хранить записи о покупках в базе данных.
Я обсуждаю, использовать ли одну унифицированную таблицу/коллекцию для всех покупок или отдельные таблицы/коллекции для каждой платформы.
Некоторые подробности:
Записи о покупках включают идентификатор пользователя, идентификатор продукта, идентификатор транзакции/покупки, сумму, валюту, статус (завершено, в ожидании, возвращено) и квитанция/токен для конкретной платформы.
Мне нужно поддерживать такие запросы, как:
Общий доход на пользователя
Доход на платформу
Обработка возврата/сверки
Поля, специфичные для платформы: идентификатор транзакции Apple и идентификатор заказа Google, а также различия в обработке расходуемых и нерасходуемых материалов.
Мои вопросы:
Считается ли лучшей практикой хранить все покупки в одной таблице/коллекции или разделять их по платформам?
Если используется одна таблица, как лучше всего обрабатывать поля, специфичные для платформы, не усложняя запросы?
Есть ли какие-либо распространенные ошибки при разработке таблицы покупок для многоплатформенные приложения?
Я использую серверную часть MongoDB/SQL (подойдет любой вариант), и мне нужно решение, которое масштабируется по мере роста приложения.
Я разрабатываю мобильное приложение, в котором есть встроенные покупки как для iOS (App Store), так и для Android (Google Play). На серверной стороне мне нужно хранить записи о покупках в базе данных. Я обсуждаю, использовать ли одну унифицированную таблицу/коллекцию для всех покупок или отдельные таблицы/коллекции для каждой платформы. Некоторые подробности: [list] [*]Записи о покупках включают идентификатор пользователя, идентификатор продукта, идентификатор транзакции/покупки, сумму, валюту, статус (завершено, в ожидании, возвращено) и квитанция/токен для конкретной платформы.
[*]Мне нужно поддерживать такие запросы, как:
[*]Общий доход на пользователя
[*]Доход на платформу
[*]Обработка возврата/сверки
[*]Поля, специфичные для платформы: идентификатор транзакции Apple и идентификатор заказа Google, а также различия в обработке расходуемых и нерасходуемых материалов.
[/list] Мои вопросы: [list] [*]Считается ли лучшей практикой хранить все покупки в одной таблице/коллекции или разделять их по платформам?
[*]Если используется одна таблица, как лучше всего обрабатывать поля, специфичные для платформы, не усложняя запросы?
[*]Есть ли какие-либо распространенные ошибки при разработке таблицы покупок для многоплатформенные приложения?
[/list] Я использую серверную часть MongoDB/SQL (подойдет любой вариант), и мне нужно решение, которое масштабируется по мере роста приложения.