-1
正規化されていないテーブルがあります。私はそれを正規化し、参照を作成する間に複数のテーブルにデータを素早く分離したい。すべてはストアドプロシージャで行われる。正規化されていない既存のデータを使用して複数の新しいテーブルを正規化して作成するためのストアドプロシージャ
表:
Murder
(CaseID
、GunManufacturer
、GunName
、Villian
)
いくつかのサンプルデータ:
(40465893, 'BIG COMPANY','AK47', 'Dank Hank')
(34534566, 'SMALL COMPANY','Bazooka', 'King Kong')
ここでは、作成したいテーブルとその情報を個別にプッシュします。 これらのテーブル(制約付き)はすでに作成されており、データのみを追加する必要があることに注意してください。
`Villian`
(
`VillianId`, `VillianName`,
PRIMARY KEY (`VillianId`)
) ;
`Manufacturer`
(
`ManufacturerId`, `ManufacturerName`,
PRIMARY KEY (`ManufacturerId`)
) ;
`Gun`
(
`GunId`,`ManufacturerId`,`GunName`,
PRIMARY KEY (`GunId`),
FOREIGN KEY (`ManufacturerId`) REFERENCES `Manufacturer` (`ManufacturerId`)
) ;
`Event`
(
`VillianId`, `GunId`, `date`,
PRIMARY KEY (`VillianId`)
FOREIGN KEY (`VillianId`) REFERENCES `Villian` (`VillianId`)
FOREIGN KEY (`GunId`) REFERENCES `Gun` (`GunId`)
) ;
問題の構文のを無視してください。ちょうど読むのが簡単になりたかったのです。 Idは、現在単一のテーブルに存在しないため、自動生成される必要があります。私はこの種のストアドプロシージャを作成したことがありませんし、いくつかのガイダンスを探します。完全なソリューションは期待していません。ありがとう。ここで
イベントの日付から来るんはどこ?元の殺人表には日付はありません。サロゲート識別子の導入は正規化ではないことに注意してください。推移的な関数依存性を 'gun - > manufacturer'から別のテーブル(IDまたは名前で識別されているかどうかにかかわらず)に抽出します。 – reaanb
申し訳ありませんが、情報が元の表にあるとします。私の主な質問は、この性質のSPはどのように働くのでしょうか?あなたは私に例を挙げることができますか? –