「正規化」っていう言葉は、DB設計者を「めっちゃテーブル分解できた俺かっこいい」の海に突き落とすのでお気を付けください。
要は、自分でその表(データベース)を管理した時に、管理しやすくなっているかどうかだと思います。
何かをするたびに、あっちもこっちも見に行かなくていいっていうのがいいですよね。
で、見て見ましたが、案の定やりすぎですね。
データがバラバラになりすぎていますし、肝心の紐づけができていません。
仮に紐づけをしたとして・・・
商品テーブル(←エンティティなんて実用性のない言葉は使わない):
商品ID、商品名ID、価格ID、原材料ID、商品画像ID
商品Aの情報を持ってこようとしたら、商品名テーブルと価格テーブルと原材料テーブルと商品画像テーブルを都度都度見に行かなければなりません。
面倒くさいですよね?
ということで、個人的には、
会員エンティティ 会員ID アドレス パスワード
商品エンティティ 商品ID 商品名 原材料名 価格 商品画像
カート(エンティティ) カートID 会員ID 商品ID 商品個数
注文(エンティティ)注文ID 会員ID 商品ID 商品個数 配送先
こっちの方がベターかなと思います。
強いて言うなら、カートテーブルいるかな・・・?保存したいなら必要かな?