Parse Server один-к-одному, для хранения другого указателя - PullRequest
0 голосов
/ 25 мая 2018

Я разрабатываю модель событий моего сервера, которая содержит множество событий, связанных со многими пользователями.Например (поскольку я использую 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, может быть, отключить проверку схемы в одном поле?

...