私はPHPMySQLに比較的慣れていないので、「実践的な」アプローチで学習することに専念しています。幸いなことに、私は現在、(非常に)大規模なデータベースを持っており、すべて1つのテーブルで処理するコインデータに関連しています。現在、次の列があります(各行は単一のアイテム[コイン]を表します)。
Group
ItemNo
ListNo
TypeCode
DenomCode
PeriodCode
ActualDate
SortDate
CostPrice
SalePrice
Estimate
StockLevel
DateEntered
DateSold
Archived
ArchiveWhenSold
Highlight
KeepSold
OnLists
NotForSale
Proof
StockItem
OnWeb
Cats
Ref1
Ref2
Variety
Picture
Description
TypeName
TypeHeading
DenomName
DenomHeading
DenomValue
PeriodName
PeriodHeading
PeriodStartYear
PeriodEndYear
新しいテーブルのグループ化は比較的明白です。
限目:
PeriodCode
PeriodName
PeriodHeading
PeriodStartYear
PeriodEndYear
デノム:
DenomCode
DenomName
DenomHeading
DenomValue
タイプ:
TypeCode
TypeName
TypeHeading
残りはすべて、コインテーブルの下にあります。
Group
ItemNo
ListNo
TypeCode
ActualDate
SortDate
CostPrice
SalePrice
Estimate
StockLevel
DateEntered
DateSold
Archived
ArchiveWhenSold
Highlight
KeepSold
OnLists
NotForSale
Proof
StockItem
OnWeb
Cats
Ref1
Ref2
Variety
Picture
Description
だから私はテーブルを指定されたテーブルに正規化しようとしています。私はJOINを見ていることを知っていますが、それを実行するための最良の方法を考えています。最初に各データグループ(Denom、Period、Type)で新しいテーブルを作成し、次にJOINステートメントを使用してデータを挿入しますか?または、JOINステートメントを使用して「オンザフライ」で新しいテーブルを作成する方法はありますか。私はここで素晴らしい本を開いており、MySQLのセクションをうまくフォローしていて、このサイトも調べていますが、これを行うための「正しい」方法を理解できていません。
ここで知識のあるアドバイスを求める理由は、「関係」やキーなどを維持する方法が少しわからないためです。つまり、「Denom」というテーブルを作成して、すべての現在のテーブルデータと一意の主キーを作成します。次に、この新しい主キーへの参照をDenomテーブルからメインCoinテーブル(新しいアイテムDenomIDの下)に挿入して、それらが一致するようにするにはどうすればよいですか?
基本的に、このテーブルを4つの別々のテーブルに分割する必要があります。Access 2007のテーブルアナライザウィザードを使用してこれを試しましたが、私のようなn00bには有望に見えましたが、データが多すぎて実際にクラッシュしました。繰り返し。おそらく最善の策ですが、今はいくつかのベストプラクティスと、それを実践する方法を知る必要があります。アドバイス/ヘルプ/関連リンクをいただければ幸いです。