- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我一直在从事一个需要内容的草稿/实时版本的项目,并想到了如下设计:
Article
ID
Creator
CreationDate
DraftContent(fk to ArticleContent)
PublicContent(fk to ArticleContent)
IsPendingApproval
ArticleContent
Title
Body
我想知道是在发表文章时更改外键更好,还是将内容从草稿表复制到实时表更好。
有什么建议吗?
编辑:草稿和实时版本同时存在,尽管实时版本是唯一对公众可见的版本。只能一稿一活表
这种设计的部分原因是强制用户在他们的文章上线之前获得批准。
更新:
我们决定使用 Kieren 的解决方案稍作修改。我们决定使用单个状态列,而不是像 IsPublished IsLive 这样的项目使用列。否则设计保持不变。
最佳答案
上线然后“发布”的文章草稿
通常的事情是在文章表上有一个状态/类型标志 - IsLive
。
使用单独的表格是不必要和多余的;更改外键也没有多大意义。将文章视为有效对象,无论是草稿还是实时。唯一的区别是,在大多数情况下,您只想显示实时文章。在将来的某些情况下,您可能希望同时显示两者。
最初上线后可能会被编辑并有新草稿版本的文章
就一篇同时具有实时版本和草稿版本的文章而言 - 最常见的模式是拥有一个主 Article
实体/对象,然后说 ArticleVersion
即将到来从那个。 ArticleVersion
将具有 IsLive
属性,或者甚至更好,Article
本身将具有属性 CurrentLiveVersionId
。这样就可以有实时版本和草稿版本,但您通常只需将 Article
加入 CurrentLiveVersionId
的 ArticleVersion
即可当前的实时版本。
拥有 ArticleVersion
表的优势包括可以存储文章的整个历史记录(更改日志),因此您可以根据需要恢复到以前的版本,或查看更改。所有这些都是为了非常低的实现成本..
如果我能阐明这个方法,请告诉我。
关于sql - 草稿/直播内容系统数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7896038/
我一直在从事一个需要内容的草稿/实时版本的项目,并想到了如下设计: Article ID Creator CreationDate DraftContent(fk to
这是我的第一个问题,如果我做错了什么,请告诉我... 我目前正在用 Java 制作一个草稿游戏。事实上,除了 AI 之外,一切正常。AI 目前是单线程的,使用 minimax 和 alpha-beta
我一直在 Delphi 下使用 Indy 通过 gmail 帐户发送消息,使用 TIdSMTP 和 TIdMessage 组件。这绝对没问题。 但是,我的客户请求将消息保存到 DRAFTS 文件夹,以
我有一个简单的 IBackgroundTask执行查询然后根据特定项目是否存在执行插入或一个或多个更新的实现。但是,更新没有持久化,我不明白为什么。新项目按预期创建。 我正在更新的内容项有 Commo
我的部分应用程序功能是自动填写 Gmail 邮件主题、文本、收件人并附上照片。但是当我退出 gmail Intent 而不发送邮件时,我不想将此邮件保存为草稿。 如何禁止在从我的应用程序开始意向之前保
我正在尝试使用 facebook 的 Draft-JS 框架实现一个编辑器,该框架将被限制为 50 个字符的行。 我不希望使用 css 换行,我希望它们在达到 50 个字符的限制时真正分成单独的 bl
我正在编写一个应该同时支持 draft 17 的小型 WebSocket 服务器应用程序和较旧的变体,例如 draft 00 .我对最新的草稿没有任何问题,但我无法让草稿 00 的客户满意。 出于测试
我正在使用 Facebook 的 Draft.js 库创建富文本框,我需要将文本框的插入符号设为红色。可能吗? 我已阅读有关 -webkit-text-fill-color 属性的内容,但它使键入的文
我正在使用 Gmail API 在 Python 中自动创建 Gmail 草稿。我需要创建 HTML 格式的电子邮件,但我个人也需要创建纯文本回退,因为这是正确的做法。 我以为我已经完成了上述所有工作
从官方文档我知道了 2 种方法:通过键获取实体和获取最后创建的实体。就我而言,我还需要一种方法来访问当前 ContentState 中的所有实体。有什么方法可以执行此操作吗?如果没有,是否有一个可以提
我有一个难题要解决。 Here is my sample project 基本上我想创建一个可编辑的类似书本的容器,并且由于每个书页都是另一个容器,所以我不知道如何在页面充满文本后让编辑器从一个页面过
按此 SO thread我应该能够使用格式如下的超链接直接转到使用 Gmail REST API 创建的 Gmail 草稿邮件: https://mail.google.com/mail/#draft
我一直在尝试弄清楚如何自动将收件人添加到通过他们的 Ruby 库使用 Gmail API 创建的草稿电子邮件。我可以毫无问题地创建草稿,但设置收件人给我带来了麻烦,而且我一直无法找到任何好的示例来展示
是否有文档解释如何在将内容粘贴到 Draft.js 中时保留段落分隔符?其他格式看起来很合理,但粘贴时所有段落 block 都会折叠成单个段落 block 。 最佳答案 您可以使用编辑器的 Prop
我正在构建一个基于draft-js的扩展编辑器来添加脚注功能。在主编辑器中编写文本时,用户可以选择单击“添加脚注”,这会在当前选择处添加脚注标记(带有注释编号的徽章),并打开辅助编辑器,在其中编写文本
我总是使用 Gmail 来保存网页剪辑或笔记。我只需创建一封新邮件,对其进行编辑并另存为草稿。两年多来,我已将 1000 多封邮件转储到 Gmail 草稿文件夹中。我想以编程方式将它们全部发送给自己。
N4791 - 2018-12-07(这与 [basic.start.static]/2 的 current draft 中的措辞一致) Constant initialization is perf
我正在尝试使用 C# 在 winforms 应用程序中生成 Gmail 草稿邮件。消息草稿需要采用 HTML 格式并能够包含附件。 我能够使用 AE.Net.Mail 生成带有附件的草稿,但草稿邮件是
我正在使用来自 their website 的 paypal 创建发票样本 json 我得到了一个足够好的 token ,我将其与帖子一起提交,因为错误不是 401 Unauthorized 而是 4
我是一名优秀的程序员,十分优秀!