Koc
Новичок
Есть мероприятия. Они привязаны к нескольким районам. Могут быть приватными - тогда их видит определенный круг лиц, приглашенных на эти мероприятия. Могут состоять в группе. Группы в свою очередь тоже могут быть открытыми и закрытыми. А также возможны комбинации - закрытое мероприятие в закрытой группе.
Выборки сейчас идут через MySQL и выглядят довольно кисло. Что-то типа
	
	
	
		
Вопрос: как и в чем это нужно хранить, что б обеспечить нормальную скорость доступа к данным с учетом приватности?
								Выборки сейчас идут через MySQL и выглядят довольно кисло. Что-то типа
		Код:
	
	SELECT
  e
FROM event e
  LEFT JOIN e.invitee i WITH i.user = :current_user
  LEFT JOIN e.group g
  LEFT JOIN g.participants p WITH g.user = :current_user
WHERE ((e.is_private = false AND e.group IS NULL) OR  (e.is_private = true AND i IS NOT NULL) OR (e.group IS NOT NULL AND g.is_open) /* ... */) AND /* прочие фильтры, например по районам */ 
	            
 
 
		 
 
		