概要:
ほとんどの場合、製品の分類に使用されるテーブル「category」があり、現在は次のようになっています。
CREATE TABLE [dbo].[Category]
(
CategoryId int IDENTITY(1,1) NOT NULL,
CategoryNode hierarchyid NOT NULL UNIQUE,
CategoryString AS CategoryNode.ToString() PERSISTED,
CategoryLevel AS CategoryNode.GetLevel() PERSISTED,
CategoryTitle varchar(50) NOT NULL,
IsActive bit NOT NULL DEFAULT 1
)
このテーブルは、ショッピングWebサイト(通常はすべてのページビュー)にカテゴリ階層を表示するために頻繁に照会され、かなりの数のアイテムを含めることができます。
データレイヤーでEntityFrameworkを使用しています。
質問:
Webページのコンテンツ全体の形で提供される可能性のあるかなり大きな「説明」を追加する必要があります。これを追加するのではなく、関連するテーブルに保存する必要があるかどうか疑問に思っています。エンティティフレームワークが「description」列をデータベースから100%ドラッグする場合、既存のカテゴリテーブルは、99.5%の確率でCategoryTitleとCategoryIdのみが必要になります。
通常、Entity Frameworkのオーバーヘッドについては心配しませんが、その場合は、それを考慮することが重要だと思います。ストアドプロシージャからのビューまたは複合型を使用してこれを回避することもできますが、これは、避けたい多くのリファクタリングを意味します。
このシナリオに関連して、誰かが私の手首を叩いたいという考え、提案、または願望を持っているかどうかを知りたいだけです...
編集:
セカンダリテーブルの設定を躊躇している理由は、Categoryテーブルと1対1の関係にあるテーブルを追加するというアイデアが好きではないためです。これはやや無意味に思えます。しかし、私もDBAではないので、これが許容できる方法であるかどうかはわかりません。