私は人のテーブルを持っている人の列の1つは、 "プロパティ"と呼ばれるXMLフィールドです。私はこれを使用して、基本的にデータベースの再設計なしに追加された余分なフィールドを人が格納できるように、それぞれの人に関するランダムな情報を格納しました。すべての人がXMLに同じ要素を持つわけではありません。SQL 2005のXMLデータを表示
CREATE TABLE [dbo].[Person](
[PersonID] [bigint] IDENTITY(1,1) NOT NULL,
[PersonType] [nvarchar](50) NULL,
[Title] [nvarchar](5) NULL,
[Forename] [nvarchar](60) NULL,
[Surname] [nvarchar](60) NULL,
[Company] [nvarchar](60) NULL,
[Properties] [xml] NULL
)
XMLの例は次のとおりです。
<PropertyList xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Property Name="Class">Class A</Property>
<Property Name="CarRegistration">123456</Property>
<Property Name="MedicalNotes">None</Property>
</PropertyList>
私は、このデータにアクセスする必要があるいくつかの古いアクセスフロントエンドのデータベースを持っている私の計画は、一致するテーブルをフォーマットされた各フロントエンドのビューを作成することでしたその本来のレイアウト。アクセスフロントエンドの再開発の労力を節約します。すぐに削除される予定です。しかし、私の新しいデザインでは、XMLプロパティの中にいくつかのフィールドが格納されています。とにかく、xmlフィールドに戻って1つ以上の列を保存して、テーブルの更新可能なビューを作成できますか?
例えばPersonType = "Student"で、列の1つが現在xmlに格納されている "Class"と呼ばれるすべてのレコードを返す "people_students"というテーブルのビューを作成したいとします。
私はもともとEAVアプローチのために行くが、私は一般的なコンセンサスが代わりに向いEAVと使用文書を捨てることでしたここに掲載いくつかの他の質問の後にされました。私は、この問題を除いて、管理/プログラムするのがより簡単に思えたので、同意しました。私はあなたの提案に似ているデータを管理するために一時テーブルの行に沿って考えていました。私はあなたが私はいくつかのサンプルコードなどを取得する可能性があります任意のアイデアを持っていない、本当に彼らは私が開発していなかったとして、すべての更新は、データベース・レベルでなければならないであろうように、フロントエンドのコードを更新する力を持っていけませんか?ありがとう – Jammy