0

何千冊もの本(タイトル、年、作家など)を含むdbテーブルがあります。ユーザーは、読んだ本をリストに追加できます。データベースで利用できない場合に、所有する本を追加できるようにしたいと思います。また、そのユーザーのみが利用できるようにします。新しいテーブルを作成するか、「is_custom」列と「user_id」列を使用して本をメイン テーブルに追加するだけですか? 2 番目の方法は管理がはるかに簡単に思えます (たとえば、検索に関しては、2 つのテーブルを結合するのはばかげているように思えます..) が、両方 (私の本とユーザーの本) がかなり大きくなるのでお願いしています..

ありがとうございました!

4

2 に答える 2

0

最初に単純さと保守性を考慮して設計し、問題があることがわかった後でのみパフォーマンスの改善を導入します。

「かなり大きい」とは、人によって意味が異なりますが、その問題を解決する必要がある場合、データを 2 つのテーブルに分割すると、おそらく 2 回解決する必要があります。 「userBooks」テーブルよりも「books」テーブル。

于 2012-04-13T10:11:30.143 に答える
0

理論的には、1 つのエンティティに対して 1 つのテーブルを使用するのが最善の方法です。バリアント 1 です。'Users' - リンクのテーブルを介した別のテーブル (多対多)。あなた自身の本は、事前定義された一定のユーザーに所有されています (より良い、またはユーザーへのリンクなし)。

OOP データベースでは、親テーブルと 2 つの子テーブルを使用できます。しかし、一見すると、あなたの状況はそれさえ必要としません。

于 2012-04-13T10:08:08.243 に答える