Я максимально упросту.
Table A, an event table, has 4 columns: _id, timestamp, type, source_id
Table B, a source table for a type: _id, a number of other columns unique to B
Table C, a source table for a type: _id, a number of other columns unique to C
Table D, a source table for a type: _id, a number of other columns unique to D
Я храню до 200 таких событий (на данный момент может перейти в 1000-е), они будут иметь тип B, C, D. При загрузке этих событий мне нужно создавать объекты событий, которые выглядят примерно так
Event {
id
timestamp
type
source object (can be an object of type B,C,or D, which share a base class)
}
Моя единственная текущая стратегия:
- вытянуть все объекты события
- сделать 3 отдельных запроса (выберите * из B, где id в (compiled_list_of_ids_of_type_B), то же самое для c, то же самое для d)
- Хранить результаты 3 вышеуказанных запросов в 3 различных хэш-картах, чтобы их можно было легко получить по id
- перебирает объекты событий и сохраняет исходные объекты в их собственных событиях
Я не в восторге от этого, стратегия запросов кажется довольно неэффективной. Любые идеи о том, как сделать это более эффективно?
Спасибо