诗词飞花令游戏,是一个两人对战的游戏。首先会随机抽取飞花令,根据所抽取的飞花令,玩家轮流说出包含该飞花令的诗句,如抽到“花”字令,则玩家需要答出包含“花”字的诗词,例如“春风得意马蹄疾,一日看尽长安花”。玩家抽到的飞花令为“花名”,则需要回答出包含花名的诗词,例如“墙角数枝梅,凌寒独自开”。直到一方说不出来,即判定该方失败。
该系统同时具备诗词分类功能,能通过诗词查询到分类信息,也能通过诗词分类检索到所需的诗词数据。诗词可根据体裁分为古体诗、绝句、律诗、词、曲等类别,根据主题可分为送别诗、爱国诗、悼亡诗、边塞征战诗等类别,根据诗歌出处选集分为《全唐诗》《全宋词》《诗经》等类别。每首诗词都可以属于多个类别,例如《永遇乐·京口北固亭怀古》根据体裁属于词,根据主题属于爱国诗、怀古咏史诗,收录于《嫁轩长短句》和《全宋词》。
人机对战“诗词飞花令”游戏,由玩家跟计算机对战完成,根据诗词飞花令游戏需求,设计数据库poemGameDB,E-R 模型如图所示。
现在需要升级该诗词飞花令游戏,除上述飞花令游戏及诗词分类功能,需要增加诗人游历模块,记录诗人在大好河山的游历足迹。根据功能需求,完成数据库设计。
(1)根据功能需求,分析实体及实体间属性重新绘制E-R模型。
(2)根据数据库管理系统的要求,将E-R模型转换为关系模型。
诗词(诗词id、诗词标题、诗词内容、诗词热度、创作背景、注释、评析)
飞花令(飞花令id、飞花令名称)
诗词类型(类别id、类别名称、分类方式)
诗人(诗人id、诗人姓名、性别、字、号、出生年份、逝世年份、出生地、朝代、民族、生平简介、诗人热度)
山河(地点名称、面积)
游历(游历日期、地点名称、诗人id)
(3)根据数据库管理系统的要求,设计物理模型。
诗词表(potery_table)
字段名 类型 主键 是否为空
诗词id int 是 否
诗词标题varchar 否 否
诗词内容 text 否 否
诗词热度 int 否 是
创作背景 text 否 是
注释 varchar 否 是
评析 text 否 是
飞花令(Feihualing)
字段名 类型 主键 是否为空
飞花令id int 是 否
飞花令名称 varchar 否 否
诗词类型(potery_type)
字段名 类型 主键 是否为空
类别id int 是 否
类别名称 varchar 否 否
分类方式 varchar 否 是
诗人(poter_table)
字段名 类型 主键 是否为空
诗人id int 是 否
诗人姓名varchar 否 是
性别 char 否 是
字 char 否 是
号 int 否 是
出生年份date 否 是
逝世年份date 否 是
出生地varchar 否 是
朝代char 否 是
民族 char 否 是
生平简介text 否 是
诗人热度 int 否 是
山河(position)
字段名 类型 主键 是否为空
地点名称 varchar 是 否
面积 int 否 否
游历(travel)
字段名 类型 主键 是否为空
游历时间 time 否 否