0

Web サイトのフロントエンドに表示されるデータベースにエンコードされた一連の記事があるとします。

カスタム定義の順序付けのサポートが追加された場合、これをデータベースでどのように表現できますか?

PS: 記事が複数のリストに表示される場合があります。

4

2 に答える 2

3

ユーザー定義の順序をデータベースに格納する唯一の方法は、テーブル内のデータの行として保存することです。そのためには、列が必要です

  • ユーザーを識別し、
  • 記事を特定し、
  • 順序を識別します。

最初の 2 つは簡単です。注文を保存するには、いくつかの方法があります。通常、設計の目標は、順序を書き直す必要性を減らすことです。

create table user_defined_order (
  user_id integer not null references users (user_id),
  article_id integer not null references articles (article_id),
  sort_order <sort_data_type> not null,
  primary key (user_id, article_id),
  unique (user_id, sort_order)
);

最後の制約 はunique (user_id, sort_order)、アプリケーションに依存します。

sort_data_type オプション

データ型が異なれば、挿入および順序変更のオプションも異なります。最も一般的に使用されるのは

  • ギャップのない整数 (挿入には一連の行を書き換える必要があります)
  • ギャップのある整数 (ギャップに挿入し、ギャップが閉じたときに行の束を書き換えます)
  • float (既存の float の途中に挿入、分割に失敗した場合は書き換え)
于 2012-12-03T10:07:28.703 に答える
2

私があなたを正しく理解していれば、すべてのユーザーが注文を異なる順序で表示できます。すべてのユーザーが ID を持っていると仮定すると、ユーザー ID/記事 ID/表示順序の 3 つのフィールドで構成されるテーブルが必要になります。ここで、ユーザー ID と記事 ID がテーブルの複合主キーを提供します。

于 2012-12-03T10:00:57.833 に答える