Skip to content

Latest commit

 

History

History
126 lines (107 loc) · 5.41 KB

条目.md

File metadata and controls

126 lines (107 loc) · 5.41 KB

条目

条目目前用到的有三个表 (还有chii_subject_alias表,但是因为目前没有提供搜索功能,所以没有用到)

CREATE TABLE IF NOT EXISTS `chii_subjects` (
  `subject_id` mediumint(8) unsigned NOT NULL,
  `subject_type_id` smallint(6) unsigned NOT NULL DEFAULT '0',
  `subject_name` varchar(80) NOT NULL,
  `subject_name_cn` varchar(80) NOT NULL,
  `subject_uid` varchar(20) NOT NULL COMMENT 'isbn / imdb',
  `subject_creator` mediumint(8) unsigned NOT NULL,
  `subject_dateline` int(10) unsigned NOT NULL DEFAULT '0',
  `subject_image` varchar(255) NOT NULL,
  `subject_platform` smallint(6) unsigned NOT NULL DEFAULT '0',
  `field_infobox` mediumtext NOT NULL,
  `field_summary` mediumtext NOT NULL COMMENT 'summary',
  `field_5` mediumtext NOT NULL COMMENT 'author summary',
  `field_volumes` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '卷数',
  `field_eps` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `subject_wish` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `subject_collect` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `subject_doing` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `subject_on_hold` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '搁置人数',
  `subject_dropped` mediumint(8) unsigned NOT NULL DEFAULT '0' COMMENT '抛弃人数',
  `subject_series` tinyint(1) unsigned NOT NULL DEFAULT '0',
  `subject_series_entry` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `subject_idx_cn` varchar(1) NOT NULL,
  `subject_airtime` tinyint(1) unsigned NOT NULL,
  `subject_nsfw` tinyint(1) NOT NULL,
  `subject_ban` tinyint(1) unsigned NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

条目主表。

subject_seriessubject_series_entry 用于书籍条目的主系列功能。其他的基本上通过字段名就能判断出来。单行本和系列的信息在条目关联表中也有保存。

subject_idx_cn 是中文名的第一个字的拼音首字母。

CREATE TABLE IF NOT EXISTS `chii_subject_fields` (
  `field_sid` mediumint(8) unsigned NOT NULL,
  `field_tid` smallint(6) unsigned NOT NULL DEFAULT '0',
  `field_tags` mediumtext NOT NULL,
  `field_rate_1` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_rate_2` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_rate_3` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_rate_4` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_rate_5` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_rate_6` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_rate_7` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_rate_8` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_rate_9` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_rate_10` mediumint(8) unsigned NOT NULL DEFAULT '0',
  `field_airtime` tinyint(1) unsigned NOT NULL,
  `field_rank` int(10) unsigned NOT NULL DEFAULT '0',
  `field_year` year(4) NOT NULL COMMENT '放送年份',
  `field_mon` tinyint(2) NOT NULL COMMENT '放送月份',
  `field_week_day` tinyint(1) NOT NULL COMMENT '放送日(星期X)',
  `field_date` date NOT NULL COMMENT '放送日期',
  `field_redirect` mediumint(8) unsigned NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

field_sid 是条目 id。

field_rate_* 是各个分数的打分人数。目前的最终分数计算为简单地平均值。

field_tags 保存的是 php serlize 序列化过的 tag 信息,大概这样:

[
  {"tag_name": Optional[str], "result": int},
  {"tag_name": Optional[str], "result": int},
]
CREATE TABLE IF NOT EXISTS `chii_subject_relations` (
  `rlt_subject_id` mediumint(8) unsigned NOT NULL COMMENT '关联主 ID',
  `rlt_subject_type_id` tinyint(3) unsigned NOT NULL,
  `rlt_relation_type` smallint(5) unsigned NOT NULL COMMENT '关联类型',
  `rlt_related_subject_id` mediumint(8) unsigned NOT NULL COMMENT '关联目标 ID',
  `rlt_related_subject_type_id` tinyint(3) unsigned NOT NULL COMMENT '关联目标类型',
  `rlt_vice_versa` tinyint(1) unsigned NOT NULL,
  `rlt_order` tinyint(3) unsigned NOT NULL COMMENT '关联排序'
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='条目关联表';

对于 改编 关联,会 fallback 到对应条目的类型。比如 动画 改编 书籍 对应的关联信息为书籍。

章节

章节定义在 chii_episodes 表中。

CREATE TABLE IF NOT EXISTS `chii_episodes` (
  `ep_id` mediumint(8) unsigned NOT NULL,
  `ep_subject_id` mediumint(8) unsigned NOT NULL,
  `ep_sort` float unsigned NOT NULL DEFAULT '0',
  `ep_type` tinyint(1) unsigned NOT NULL,
  `ep_disc` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '碟片数',
  `ep_name` varchar(80) NOT NULL,
  `ep_name_cn` varchar(80) NOT NULL,
  `ep_rate` tinyint(3) NOT NULL,
  `ep_duration` varchar(80) NOT NULL,
  `ep_airdate` varchar(80) NOT NULL,
  `ep_online` mediumtext NOT NULL,
  `ep_comment` mediumint(8) unsigned NOT NULL,
  `ep_resources` mediumint(8) unsigned NOT NULL,
  `ep_desc` mediumtext NOT NULL,
  `ep_dateline` int(10) unsigned NOT NULL,
  `ep_lastpost` int(10) unsigned NOT NULL,
  `ep_lock` tinyint(3) unsigned NOT NULL DEFAULT '0',
  `ep_ban` tinyint(3) unsigned NOT NULL DEFAULT '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

ep_desc 章节简介。

ep_disc 仅在此表中出现,为音乐条目的碟片数,条目表中没有总碟片数。

ep_online ep_resources 是废弃字段,曾经存相关网站的资源,后来放弃了。

ep_ban 表示章节被锁定,在 api 响应中应当隐藏。