dtb_product_stockとdtb_product_classのリレーションがEntityの定義通り作られていない
- Dominant language
- PHP
- Stars
- 788
- Forks
- 719
- Avg merge
- 4d 4h
- Merged PRs (30d)
- 39
Description
## 概要(Overview)
DoctrineのEntity定義的にはdtb_product_stockとdtb_product_classは1対1で外部キー制約を貼るように記述されています。しかし実際のDB上ではdtb_product_stockからdtb_product_classへの外部キーは貼られていますが、dtb_product_classからdtb_product_stockへの外部キーは貼られていません。
そのため管理ツールより商品規格のvisibleをfalseにした後trueにすると同じproduct_class_idで複数のdtb_product_stockレコードが作成されてしまいます。実際の動作には影響しませんが、DoctrineのEntity定義とは違うデータ構造とデータが作成されてしまっています。
DoctrineのEntity定義を以下に貼っておきます
https://github.com/EC-CUBE/ec-cube/blob/ed96ec6db606510a2cb045ac3a07da89ce3fbd4d/src/Eccube/Entity/ProductClass.php#L262-L267
https://github.com/EC-CUBE/ec-cube/blob/ed96ec6db606510a2cb045ac3a07da89ce3fbd4d/src/Eccube/Entity/ProductStock.php#L92-L100
## 期待する内容(Expect) or 要望 (Requirement)
期待する内容としてはdtb_product_classとdtb_product_stockが1対1でリレーションが作成されるものと思いますが、実際は1対多で作成されています。どちらが正しいのでしょうか?
## 再現手順(Procedure)
Webインストーラー経由でDBの初期化を行う
### 環境 (environment)
+ EC-CUBE: 4.0.1
+ PHP: 7.2.24
+ DB:
- MySQL 5.7系
## 関連情報 (Ref)
こちらのissueが内容的には似ているように見えましたが、報告時期的にEC-CUBE3系のものだと思われたので新規に作成しました。 https://github.com/EC-CUBE/ec-cube/issues/2003
Contributor guide
Assessment
This issue has not been assessed yet.