Здесь будут схемы хранения данных, чтобы понимать что где лежит, в каком виде.
основная реляционная БД
Точка главной ответственности, по этой БД можно восстановить все остальные. Сейчас MySQL 5.7 в планах обновление до 8, но необходимости нет.
- Доменные таблицы
- Проекты
- project
- project_user - полномочия пользователей в проектах
- task - задачи
- doc - документы
- Система файлов
- file - загруженные в проект файлы
- attachment - связь файлов с задачами и документами к которым они прикреплены
- Пользователи и полномочия
- app_user (так как user является ключевым словом)
- Дополнительное
- activity - активность пользователя (не только в проектах)
- comment - комментарии пользователя
- Технические таблицы
нереляционная быстрая БД
Redis, с включенным сохранением на диск. В будущем думаю часть данных уйдет в другие БД.
На данный момент нет, будет реализована в v0.4
Для того, чтобы отделить кеш от данных наших систем, надо разделить данные на разные БД.
- 0 - кеши, статистика
- stat (Описание системы в Статистика проекта)
- статистика глобальная, не зависящаая от проекта
- статистика по проектам tndt-75
- dictionary - весьма напрашиваются на кеширование, но на данный момент не очень понятно как и где это делать. tndt-84
- 1 - сессии
- 2 - wiki (Описание системы в Система гипертекста для wiki)
- текущее состояние ссылок
- поиск от сущности всех ссылок на неё, чтобы поменять им состояние
- 3 - очереди (зачин на будущее, но думаю уже к версии 0.5 будут на них планы)
Чтобы был возможен переезд на другие субд, где может не быть деления, все системы все равно получают префикс ключей, чтобы их было проще найти.
В то время, как сессии явно не кеши, stat очень похожи на кеши (точнее в данный момнет они и етсь кеши, только на файлах).