0

企業からベンダーに製品に関するメッセージを送信するために使用される次の表があります。

Table Messages:
INT PK  Message_ID 
TEXT    Message
INT FK  Company_ID
INT FK  Product_ID
DATE    Date
TEXT    Message_Receivers
TEXT    Email_Attachments
TINYINT Status

Table Email_addresses:
INT PK  Company_Email_ID
INT FK  Company_ID
VARCHAR Email_Name
VARCHAR Email_Address

Table Attachments:
INT PK  attachment_id
INT FK  image_id
INT FK  product_id
DATE    Upload_date
VARCHAR Category

現在、メッセージが複数の受信者に送信され、複数の添付ファイルがある場合、それらはシリアル化されたメッセージテーブルに配置されます。私はこの方法にあまり詳しくないので、テーブルを正規化して1つの行に受信者と添付ファイルがあるようにしたいのですが、その方法がわかりません。

私の質問は、シリアル化したままにしておくことには利点がありますか?初心者として、私が利益を逃しているかどうかはわかりません。正規化が鍵である場合、その方法についてのヒントを教えてください。

4

1 に答える 1

0

私見、正規化は常に最初の仮定です。シリアル化はプログラムでの使用には非常に適していますが、MySQLが関与する可能性のあるものには完全に逆効果です。私の一般的なアプローチは、ユーザー設定、おそらくトランザクション履歴などをシリアル化することです。 SQLステートメントに含まれることはありません。

検索の応答時間は重要な考慮事項であり、常に重要な考慮事項ですが、DB設計で正規化ルールに従って、次のようなデータを検索する限り、多くの人はDBエンジンが検索用に設計されているという事実を見逃しているようです。検索可能であることを意味するものは、常に正常に実行される必要があります。

于 2012-05-15T23:57:25.253 に答える