Files
akmon/doc_news/ak_contents.sql
2026-01-20 08:04:15 +08:00

85 lines
3.8 KiB
SQL

create table
public.ak_contents (
id uuid not null default gen_random_uuid (),
raw_content_id uuid null,
title text not null,
content text not null,
summary text null,
author character varying(128) null,
source_url text null,
original_language character varying(10) not null,
category_id uuid null,
tags text[] null,
keywords text[] null,
entities jsonb null,
sentiment_score double precision null,
readability_score double precision null,
credibility_score double precision null,
quality_score double precision null,
view_count integer null default 0,
like_count integer null default 0,
share_count integer null default 0,
comment_count integer null default 0,
published_at timestamp with time zone null,
featured_until timestamp with time zone null,
status character varying(32) null default 'published'::character varying,
ai_processed_at timestamp with time zone null,
created_at timestamp with time zone null default now(),
updated_at timestamp with time zone null default now(),
favorite_count integer null default 0,
is_featured boolean null default false,
content_type character varying null default ''::character varying,
video_url text null,
video_duration integer null,
video_poster text null,
video_width integer null,
video_height integer null,
video_size bigint null,
video_format character varying(10) null,
video_quality character varying(10) null,
audio_url text null,
audio_duration integer null,
audio_size bigint null,
audio_format character varying(10) null,
audio_bitrate integer null,
audio_sample_rate integer null,
audio_cover text null,
image_url text null,
image_width integer null,
image_height integer null,
image_size bigint null,
image_format character varying(10) null,
image_quality character varying(10) null,
image_alt_text text null,
images jsonb null,
allow_danmu boolean null default true,
allow_download boolean null default false,
media_metadata jsonb null,
cid bigserial,
constraint ak_contents_pkey primary key (id),
constraint ak_contents_cid_key unique (cid),
constraint ak_contents_category_id_fkey foreign key (category_id) references ak_content_categories (id),
constraint ak_contents_raw_content_id_fkey foreign key (raw_content_id) references ak_raw_contents (id) on delete cascade
) tablespace pg_default;
create index if not exists idx_contents_title_text on public.ak_contents using btree (title) tablespace pg_default;
create index if not exists idx_contents_favorite_count on public.ak_contents using btree (favorite_count desc) tablespace pg_default;
create index if not exists idx_contents_category on public.ak_contents using btree (category_id) tablespace pg_default;
create index if not exists idx_contents_language on public.ak_contents using btree (original_language) tablespace pg_default;
create index if not exists idx_contents_published on public.ak_contents using btree (published_at desc) tablespace pg_default;
create index if not exists idx_contents_quality on public.ak_contents using btree (quality_score desc) tablespace pg_default;
create index if not exists idx_contents_status on public.ak_contents using btree (status) tablespace pg_default;
create index if not exists idx_contents_type on public.ak_contents using btree (content_type) tablespace pg_default;
create index if not exists idx_contents_type_published on public.ak_contents using btree (content_type, published_at desc) tablespace pg_default;
create index if not exists idx_contents_images_gin on public.ak_contents using gin (images) tablespace pg_default;
create index if not exists idx_contents_tags on public.ak_contents using gin (tags) tablespace pg_default;