-- Эта таблица нужна, чтобы когда человек набирает в поле ввода тег или жанр или бадж, -- ему подсказывало уже существующие теги/жанры/баджи CREATE TABLE IF NOT EXISTS mark ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, -- "genre" or "tag" or "badge" tag TEXT NOT NULL, -- value, "romance", "Хохлы", as an example value TEXT NOT NULL ); -- Таблица с авторами, для того же - чтобы подсказывало существующего автора. CREATE TABLE IF NOT EXISTS authors ( -- ID автора, для кросс-референсов. id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, -- Имя автора. title TEXT NOT NULL, -- Описание автора. description TEXT NOT NULL, -- Путь к файлу обложки автора. thumbnail TEXT NOT NULL ); -- Сами новеллы. Нужно, поскольку несколько постов могут отсылаться к одной игре. CREATE TABLE IF NOT EXISTS novels ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, -- Название. Используется исключительно для поиска. title TEXT NOT NULL, author INTEGER NOT NULL ); -- Таблица с **постами**. CREATE TABLE IF NOT EXISTS posts_log ( -- Кросс-референс на id в novels. novel INTEGER NOT NULL, -- ID канала, в который пост будет запощен. channel INTEGER NOT NULL, -- массив idшников на записи в marks. marks JSON NOT NULL, -- Название внки. title TEXT NOT NULL, -- Описание ВНки. description TEXT NOT NULL, -- id автора на момент планирования поста. author INTEGER NOT NULL, -- Мапа, ключ - путь к файлу в фс, значение - -- `{"post": , "description": "описание файла"}` -- - ссылка на пост в соответствующем канале с файлами, может -- быть null. Не должно быть null, если post_info != NULL (то есть если уже запостили). files_on_disk JSON NOT NULL, -- не NULL, если пост успешно запостили. -- {"link": <ссылка на пост>} post_info JSON, -- Когда ВН должна быть запощена, second-precise unix timestamp. post_at INTEGER NOT NULL, -- Когда запись в бд была создана, second-precise unix timestamp. created_at INTEGER NOT NULL );