数据库表
要创建一个能够高效存储新闻文章的灵活数据库,最好使用三个表设计,以允许文章和类别之间存在多对多关系。这些表如下所示:
表名 | 描述 |
---|---|
新闻文章 | 用于存储每篇文章的内容 |
新闻类别 | 用于存储新闻类别 |
新闻文章类别 | 用于将类别链接到文章 |
用于存储每篇文章的内容:
新闻文章 | ||
---|---|---|
字段名 | 描述 | 必修的? |
身份证件 | 主键。通过API提供的唯一新闻项id(请参阅新闻项协议参考) | Y |
大字标题 | 新闻标题 | Y |
摘录 | 新闻摘要 | N |
编码 | 使用的字符编码系统,如UTF-8 | Y |
文本 | 新闻项的文本内容 | Y |
出版日期 | 文章发表日期 | Y |
署名行 | 新闻项目的作者 | N |
推文 | 140个字符的推特新闻项目特别版 | N |
来源 | 文章的原始来源 | N |
状态 | 文章的当前状态,例如:激活/批准/起草/删除 | Y |
客户报价 | 引用为其编写新闻项的客户端文本 | N |
创建日期 | 文章的创建日期 | Y |
最后修改日期 | 文章最后修改的日期 | Y |
HTMLITLE | 要插入的文本 页面元素 |
N |
htmlMetaDescription | 要插入页面新闻项的描述元标记的文本正在上呈现 | N |
HTMLEMetakeywords | 要插入页面新闻项的关键字元标记的文本正在上呈现 | N |
htmlMetaLangauge | 要插入页面新闻项的语言元标记的语言选项将在上呈现 | N |
标签 | 以逗号分隔的自由文本标记列表 | N |
优先事项 | 优先级标志30=高,norma=20用于将新闻与发布日期一起排序 | N |
总体安排 | HTML或原始文本内容的格式 | Y |
摄影技术 | 显示在图像的可选文本属性中的文本 | N |
光定向 | 照片的方向可以是纵向的,也可以是横向的 | N |
照片宽度 | 照片缩略图实例的宽度(以像素为单位) | N |
摄影高度 | 照片缩略图实例的高度(以像素为单位) | N |
照片网址 | 指向缩略图照片源位置的URL | N |
用于存储新闻类别:
新闻类别 | ||
---|---|---|
字段名 | 描述 | 必修的? |
身份证件 | 通过API提供的唯一类别id(请参阅类别协议参考) | Y |
类型名 | 类别的文本名称 | Y |
用于存储类别和文章之间的关联,例如,给定文章所属的类别:
新闻文章类别 | ||
---|---|---|
字段名 | 描述 | 必修的? |
身份证件 | 主键。自动生成的唯一整数 | Y |
新闻文章ID | NewsArticle表中的有效id | Y |
新闻分类 | NewsCategory表中类别的有效id。 | Y |
[跳到顶端]
Microsoft SQL Server创建脚本
数据库的默认名称设置为DNContentDBSimple。下面提供了创建脚本:
创建数据库BasicSampleDB;
去
创建表BasicSampleDB.dbo.“新闻类别”(
“id”INT不为空,
“name”VARCHAR(255)不为空,
主键(“id”)
)
创建表BasicSampleDB.dbo.“新闻文章”(
“id”INT不为空,
“headline”VARCHAR(255)不为空,
“提取”文本,
“encoding”VARCHAR(45)不为空,
“文本”文本不为空,
“publishDate”日期时间不为空,
“byLine”VARCHAR(255)默认为空,
“tweetText”VARCHAR(140)默认为空,
“source”VARCHAR(255)默认为空,
“state”VARCHAR(20)不为空,
“clientQuote”文本默认为空,
“createdDate”日期时间不为空,
“lastModifiedDate”日期时间不为空,
“htmlTitle”VARCHAR(255)默认为空,
“htmlMetaDescription”VARCHAR(255)默认为空,
“htmlMetaKeywords”VARCHAR(255)默认为空,
“htmlMetaLangauge”VARCHAR(255)默认为空,
“tags”VARCHAR(255)默认为空,
“优先级”INT默认为空,
“format”VARCHAR(10)不为空,
“photoHtmlAlt”VARCHAR(255)默认为空,
“photoOrientation”VARCHAR(45)默认为空,
“photoWidth”SMALLINT默认为空,
“photoHeight”SMALLINT默认为空,
“photoURL”文本,
主键(“id”)
)
创建表BasicSampleDB.dbo.“NewsArticleCategories”(
“id”整数标识(1,1),
“newsCategoryID”INT不为空,
“newsArticleID”INT不为空,
主键(“id”),
约束fk_catID
外键(“newsCategoryID”)
参考BasicSampleDB.dbo.“NewsCategories”(id)关于更新级联的删除级联,
约束fk_feedID_cat
外键(“newsArticleID”)
参考BasicSampleDB.dbo.更新级联中删除级联中的“新闻文章”(id)
)
[跳到顶端]
MySQL创建脚本
数据库的默认名称设置为DNContentDBSimple。下面提供了创建脚本:
创建数据库BasicSampleDB/*!40100默认字符集latin1*/;
删除表(如果存在)BasicSampleDB.`NewsCategories`;
创建表BasicSampleDB.`NewsCategories`(
`id`INT(10)无符号非空,
`name`VARCHAR(255)不为空,
主键(`id`)
)ENGINE=InnoDB默认字符集=1;
删除表(如果存在)BasicSampleDB.`NewsArticles`;
创建表BasicSampleDB.`NewsArticles`(
`id`INT(10)无符号非空,
`标题'VARCHAR(255)不为空,
`摘录`文本,
`编码'VARCHAR(45)不为空,
`text`文本不为空,
`publishDate`datetime不为空,
`署名`VARCHAR(255)默认为空,
`tweetText`VARCHAR(140)默认为空,
`source`VARCHAR(255)默认为空,
`state`VARCHAR(20)不为空,
`clientQuote`文本默认为空,
`createdDate`datetime不为空,
`lastModifiedDate`datetime不为空,
`htmlTitle`VARCHAR(255)默认为空,
`htmlMetaDescription`VARCHAR(255)默认为空,
`htmlMetaKeywords`VARCHAR(255)默认为空,
`htmlMetaLangauge`VARCHAR(255)默认为空,
`标签'VARCHAR(255)默认为空,
`priority`INT(10)无符号默认为空,
`格式'VARCHAR(10)不为空,
`photoHtmlAlt`VARCHAR(255)默认为空,
`photoOrientation`VARCHAR(45)默认为空,
`photoWidth`SMALLINT默认为空,
`photoHeight`SMALLINT默认为空,
`photoURL`文本,
主键(`id`)
)ENGINE=InnoDB默认字符集=1;
删除表(如果存在)BasicSampleDB.`NewsArticleCategories`;
创建表BasicSampleDB.`NewsArticleCategories`(
`id`INT(10)无符号非空自动增量,
`newsCategoryID`INT(10)无符号非空,
`newsArticleID`INT(10)无符号非空,
主键(`id`),
键'FK_feedcategories_1'('NewsCategoriId'),
键'FK_feedcategories_2'('newsArticleID'),
约束'FK_feedcategories_1'外键(`newscapegoryid`)在更新级联的删除级联上引用'newscapes`(`id`),
约束'FK_feedcategories_2'外键(`newsactionid`)在更新级联的删除级联上引用'newsactions`(`id`)
)ENGINE=InnoDB AUTO_INCREMENT=937默认字符集=latin1;
[跳到顶端]
实体关系图
[跳到顶端]