1

複数の視点を可能にする既存の実装またはデータベースのタイプの名前さえありますか? つまり、たとえば、あるユーザーが記事のタイトルを変更すると、その変更はその特定のユーザーにのみ表示され、他のユーザーには元のタイトルが表示されます。複数のユーザーが同じ新しいタイトルに変更した場合、新しいタイトルは、データベースまたはアプリケーションから開始されたデータベースの「マスター ビュー」または「フィルター処理されていないビュー」になります。

私は C# でコーディングしており、SQL に精通しており、MongoDB から始めていますが、問題はその概念と、その抽象化、実装、または設計パターンが存在するかどうかです。

4

1 に答える 1

0

「視点」が完全に分離されている場合は、ユーザーごとに新しいデータベースを使用できます。

あなたの質問から、ある程度の相互接続性を持ちたいと思われます。おそらく、どのユーザーによって作成された記事も、すべての人に表示されるべきでしょうか? 非公開にする必要があるのは作成後の変更のみですか?原作者からのアップデートはどうですか?

必要な動作を指定し、それを処理できるデータベースを設計するだけでよいと思います。

1 つの解決策は、(記事) ID とユーザー ID の両方をテーブルのキーとして使用することです。そうすれば、特定のユーザーのコンテンツを完全に置き換えることができます。ユーザー 456 に表示される記事 123、またはユーザー 789 に表示されるようにそのユーザーが編集していない場合、またはそのユーザーが編集していない場合は、任意のバージョンを選択するとします。

SELECT * FROM articles WHERE id = 123 ORDER BY user_id = 456 DESC, user_id = 789 DESC LIMIT 1
于 2010-09-14T08:28:23.863 に答える