2016-08-04 8 views
0

私はASP.NET aspxページで作業しています。これにより、ユーザーはまずネットワークセキュリティ形式を選択し、その下でセキュリティフォームを選択し、その選択肢には、他の選択肢があるかもしれません。T-SQLでフラットファイルまたはサブファイルを使用する必要があります

私は(TSQL内)フラットファイルとしてそれを構築する場合は、次のようになります。

enter image description here

しかし、私は別のファイルに分解すれば、それは次のようになります。

enter image description here

enter image description here

enter image description here

enter image description here

(もちろん私はテーブル内のすべての可能なレコードをリストアップしていない、プラスより後で追加があるでしょう)それは長いレコードの数百人であったとしても、単一のフラットファイルを使用するプログラムで、より良いです、またはそれはサブテーブルを使用する方が良いですか?

フラットファイルを使用する場合、行が選択されると、そのファイルがアクセス要求の要求に追加されます。サブテーブルを使用すると、各行にチェックボックスが表示されます。チェックボックスをオンにすると、関連するすべてのサブテーブルレコードが要求されます。

多分、私はこれをすべて間違っていると誰かが私の前に車輪を発明しています。

+0

データ正規化に関する本またはオンラインチュートリアルを検索します。 –

答えて

1

これは、あなたのモデルで上に示したものよりはるかに簡単だと思います。基本的には、このフローで作業している2つのエンティティがあります。

  1. ネットワーク・セキュリティ - (ネットワークアイテム??)
  2. ルート

ネットワーク・セキュリティ・レコードは、コードと説明が含まれており、ネットワーク上の "もの" を表しています。 「もの」にルートがありますか?そうであれば、上記のように、このために別々のテーブルに1..nルートを定義します。もちろん、あなたはあなたのネットワークを「区画化」する方法と、ネットワーク上の「場所」をより複雑にすることができます。

私の本能は、これがテーブル格納に適していると私に伝えます。あなたは、IPアドレス、ルート、ドライブ、パス、これとそれが唯一の場所で更新できるような方法であなたのルート/場所を保存したいと思うかもしれません。フラットファイルでは、 "Route_Description"と言うように変更するには、すべてのレコードを更新する必要があります。

+0

私は理解しています。より適切な言葉を見つけることができなかったので、私は "Route"という言葉を選びました。必ずしもルートであるとは限りません。時には、それは物理的な場所の要求です。時には、それはネットワークルーティングです。場合によっては、アプリケーション内のアクセスパスです。場合によっては、セキュリティアクセスを制御することがセキュリティ上許容されます。むしろすべてを同じフォーマットに分けていきたいと思いますが、私はクライアントの指示に従わなければなりません。 –

+0

あなたのクライアントは何をどこで答えますか?しかし、 "what"に複数の "where"があると、あなたのコーディングとストレージに多少寄り添う傾向があります。クライアントは現在そのフラットファイルから操作していますか? –

+0

いいえ。私は、彼らの口コミのアクセス要求を実際のアプリケーションに変換しています。 –

関連する問題