私はデータベース、特に MySQL の分野の専門家ではないので、専門用語を少し混乱させてしまいました。
私は新しい仕事を得た内部データベース組織を持っています。1 つの巨大なテーブル製品、カテゴリ、およびさまざまなプロパティのヒープ。このテーブルのプロパティは何度も繰り返されます (つまり、一意ではありません)。各位置 - テーブルの 1 行。
タイトル、カテゴリ、およびプロパティを独自のコンテンツを持つ別々のテーブルで選択するには、それをいくつかの小さなものに分割する (分解する) 必要があります。
ほとんどの場合、私が望むものは明確であるはずですが、それでも構造を与えます。
1. 既存のデータベースの構造
メインテーブル
id int (10) unsigned NOT NULL AUTO_INCREMENT - (the unique ID of the position of the goods)
prod_name varchar (255) NOT NULL - the name of the position (non-unique)
prod_cat varchar (64) NOT NULL - the name of the category (non-unique)
prod_prop01 varchar (64) NOT NULL - name svoystva1 (non-unique)
prod_prop02 varchar (64) NOT NULL - name svoystva2 (non-unique)
2.こんな構造にしたい
メインテーブル
id int (10) unsigned NOT NULL AUTO_INCREMENT - (the unique ID of the position of the goods)
prod_name int (10) - to the entry ID (unique)
prod_cat int (10) - PH category (unique)
prod_prop01 int (10) - Foreign svoystva1 (unique)
prod_prop02 int (10) - Foreign svoystva2 (unique)
位置名の表
id int (10) unsigned NOT NULL AUTO_INCREMENT - (unique ID names)
name varchar (64) NOT NULL - the name of the position (unikalnoe!)
テーブルについても同じです - カテゴリ Prop01 と Prop02。
これは MySQL の助けを借りてのみ行うことができますか? そうでない場合は、この問題を解決するための一般的なアルゴリズムを教えてください。この単純な作業に注目していただきありがとうございます。