私は、メニュー項目のリストを含むテーブルを持っています。このメニュー項目テーブルは、メニューコンテンツテーブル、メニューダウンロードテーブルなどの5つの他のテーブルに関連しています。今では、各メニューに複数のテクニカルコードを関連付けることができるという、もう1つのレイヤーを追加するという新しい要件があります。私は、既存のデータに影響を与えずに最適化されたDB再構成を探しています。SQL Serverデータベースの再設計のアイデアは
メニュー表:
はMenuID MenuName
----------------
1 Menu1
2 Menu2
メニュー内容テーブル:
MenuContentID MenuID MenuContent
---------------------------------
1 1 contentsss
2 2 content2
今、私はtechcode
との新しい関係を追加する必要があります。それぞれmenuname
には2つのバージョンがあります。私のアプリケーションは生産中です。だから、データベースとアプリケーションを再設計する最適な方法を考えています。
第1のアプローチは、コードを追加しtech_code
コードに基づいてテーブルおよびグループmenuitem
に添加されます。
MenuID Code MenuName Tech_Code
-------------------------------
1 M Menu1 A
2 M Menu2 B
3 A Menu3 A
MenuContentID MenuID MenuContent
---------------------------------
1 1 contentsss
2 2 content2
第二の選択肢は、親テーブルの作成であり、我々は(参照テーブルにTech_Code
を追加)その親テーブルID
ParentMenuID MenuID
-------------------
1 1
1 2
MenuID ParentMenuID MenuName Tech_Code
----------------------------------------
1 M Menu1 A
2 M Menu2 B
3 A Menu3 A
第三のデザインを使用して、データのクエリをクエリ
ますMenuID MenuName
-----------------
1 Menu1
2 Menu2
MenuContentID MenuID MenuContent Tech_Code
----------------------------------------------
1 1 contentsss A
2 2 content2 B
これを実装する最善の方法でしょうか?私の提案をお願いします。