SQL Server バックエンドを備えた asp.net-mvc Web サイトがあります。問題を強調して切り分けるために、状況を単純化しています。DBに3つのテーブルがあります
- 記事テーブル (id、名前、コンテンツ)
- ロケーション テーブル (id、名前)
- ArticleLocation テーブル (id、記事 ID、場所 ID)
私の Web サイトでは、記事を作成するときに、その記事を送信したい場所を複数選択リストボックスから選択します。
約 25 の場所があるので、リストボックスから 25 の異なるアイテムを選択させる代わりに、「グローバル」という新しい場所をショートカットとして追加することについて議論していました。フロントエンドのショートカットとしてこれを実行することもできますが、これをバックエンドに流すメリットがあるかどうかについては現在議論中です。
したがって、ArticleLocation テーブルに 25 のレコードを保持する代わりに、グローバル化する記事がある場合、1 つだけを保持し、フロント エンドでいくつかのトリックを実行してすべての項目を選択します。これが非常に悪い考えであるかどうかを理解しようとしています。
私が考えることができることは私を緊張させます:
記事を作成してグローバルを選択するとどうなりますか?その後、最後に 3 つの新しい場所が追加されます。このグローバル設定がなければ、これら 3 つの場所は記事を取得できませんが、新しい方法では取得します。2番目のものが実際にあなたが望むものかもしれないので、何が良いのかわかりませんが、少し明確ではありません.
レポートに関する要件があり、グローバルなすべての記事でフィルター処理したいと考えています。article.IsGlobal() メソッドが必要になると想像してください。現時点では、プロジェクトにロケーション テーブル内のすべてのレコードと同じ数のロケーションがある場合、それをグローバルと見なすことができると言えますが、人々が新しいロケーションを追加できるため、このアプローチはやや不安定なように感じます。 .
「すべてのレコード」を実際に反映する参照データテーブルにレコードを作成することに関するこのジレンマについて、誰か提案はありますか? アドバイスをいただければ幸いです