Я разрабатываю модель событий моего сервера, которая содержит множество событий, связанных со многими пользователями.Например (поскольку я использую javascript SDK, позвольте мне описать структуру с помощью Typescript):
interface IEventBase {
user: Parse.User;
}
interface IEventStartWork extends IEventBase {
late: boolean;
}
interface IEventAfterWork extends IEventBase {
jobDone: boolean;
}
interface IEventDrinkWaters extends IEventBase {
howManyTimes: number;
}
interface IEventGoOutForLunch extends IEventBase {
howLong: number;
}
В моем случае у меня более 100 различных видов событий, и мне нужно принять все события, которые произошли содин пользователь как можно быстрее. И я не могу поместить их в одну отдельную коллекцию, потому что при необходимости я должен добавить индекс для каждого события. Поэтому я пытаюсь поместить их в одну индексированную коллекцию с указателем:
interface IEvents {
user: Parse.User;
pointer: IEventBase;
}
Благодаря такому дизайну я могу быстро извлекать все события пользователя в любом временном диапазоне.
Но затем я получил ошибку при сохранении различных событий в коллекции Events
, показывая ошибку:
schema mismatch for Events.entity; expected Pointer<EventStartWork> but got Pointer<EventAfterWork>
Что я могу сделать для достижения этой цели с помощью Parse Server, может быть, отключить проверку схемы в одном поле?