2011-12-29 8 views
0

私は、クライアントの指示に従って、トレーニングコンテンツ用の小さなCMSを構築しています。私は既存のCMSを使用することを推奨しましたが、彼はゼロからコーディングすることを私に見せたいと思っています。ここでCMSを実装する上での他の質問の多くは、高度なCMS機能に焦点を当てています。テンプレート、編集、SEO、ルーティングなどがありますが、特にコンテンツのバージョン管理など、低レベルの側面についてはあまり見当たりません。MVC3のCMS機能を実装するためのアドバイス

具体的には:永続性については、 CMSのContentItemと呼ばれるもののバージョン管理や、自分でこれを行う際に相談できる良いリソースはありますか? ContentItemは、変更の追跡、テンプレート化されたフィールドなどが必要な大きなテキストです。ブログの投稿、トレーニングの内容、テストの回答など

Entity Frameworkレベルでの変更追跡に使用できるものへのポインタは、ボーナスになります。

答えて

1

データベーステーブルにバージョン管理を追加するのは非常に簡単です。バージョンの追加フィールドを追加するだけで、これは日時、タイムスタンプ、または追加するシーケンス番号にすることもできます。これをあなたの元のキー(または一意の制約さえ)と複合した主キーにすると、あなたは金色になります。ルールは、すべての更新は挿入です。

これは本当に簡単です。その後、あなたのクエリでは、ちょうど常に最新のバージョンを取得しています(下降して注文するとTOP 1をうまくやっています)

+0

それは簡単なことですが、私はおそらく、 「ブランチング」など – ProfK

+0

@ProfK - ブランチングをサポートする多くのCMSについてはわかりません。ほとんどのエンドユーザは、コンセプトによって混乱するでしょう(私は知っています、私は文書管理のためのバージョン管理を使用するとき、どのように動作するか説明しようとしました)。もちろん、あなたの "コンテンツアイテム"には出版に関連するメンバーが含まれていますが、私はあなたがすでにそれを理解していると仮定していました。あなたはバージョン管理について質問していました。 –

+0

私は、バージョン管理を含むコンポーネントやライブラリについて、私がすでにそれらをカバーしているのではなく、他の機能を持っていると仮定して、一般的に尋ねていました。 – ProfK

関連する問題