出于问题的目的,让我们假设我有一个博客应用程序,其中包含与博客相关的博客和博客子条目。我的数据存储在两个独立的表中的数据库中:Blog和BlobSubEntries,我在Blog上的BlogSubEntries中有一个外键。这两个表都包含可以编辑的数据。
现在我的网站查询此数据库以显示博客。我也有一个cms来编辑博客条目。我不想在cms中放置一个保存按钮,所以我想将每个编辑内容发送到服务器,但是在博客实际决定发布作品之前,不希望这些数据可用于网站。
以下是需要考虑的事项:
在这个冗长的介绍之后,这是我的问题:
感谢您的时间。
答案 0 :(得分:1)
快速回答是建立一个类似的模型:
[Blog]<-----[BlogSubEntries]<----[SubEntryDraft]
^ (current content) |-------------|
| |draft_content|
| |-------------|
[BlogDraft]
(draft content)
如果你想进行版本控制,那么你会有类似的东西:
[entry]-(1)-------(N)-[entry_version]
|-------------|
| version_num |
| content |
|-------------|
我认为文档存储引擎不会产生太大影响。您仍然需要跟踪哪个版本的内容属于给定条目(或博客,或其他)。当然,除非您使用的系统已经提供了版本控制。
现在我考虑一下,你也可以在一张桌子里做到这一点:
[ BlogSubEntry ]
|----------------|
| content |
| entry_id | <--| composite alternate key:
| version_num | | UNIQUE(entry_id, version_num) NOT NULL
| surrogate_key | <-- PRIMARY KEY
|----------------|