MYSQL - 多个多对多选择
MYSQL - multiple many to many selection
我有多个与一个主要实体相关的多对多关系。
表格(名称不同,但更容易演示):
products
- id
- every other data
colors
- id
- every other data
sizes
- id
- every other data
product_color
- product_id
- color_id
product_size
- product_id
- size_id
我想在某处存储一个号码,例如50 件绿色和 XXL 尺寸的 T 恤产品,但只有 20 件绿色和 M 尺寸的 T 恤产品。我将把这个号码存储在哪里?我的数据库结构对于那个数据库结构是否有效?我正在使用 eloquent + mysql.
我会丢掉 product_color
和 product_size
tables,并添加一个 stock
table,其中包含产品、尺寸和颜色:
stock
- id -- May be redundant, depends on your application
- product_id -- FK to products.id
- color_id -- FK to colors.id
- size_id -- FK to sizes.id
- amount
您需要创建 4 个 table -
- 产品table - 与产品相关的信息,如名称、图片、描述、状态
- 选项table - 与大小、颜色等选项相关的信息
- 选项值 - 与 XL、XXL、RED、GREEN、BLUE 等选项值相关的信息
- 相关选项 - 对于选项
products
- product_id (Primary key)
- every other data
option
- option_id (Primary key)
- option_name(color|size)
option_value
- option_value_id
- option_id
- name
product_option
- product_id
- option_id
- Quantity
Product -
| product_id | name |
| -------- | -------------- |
| 1 | Tshirt |
| 2 | Jeans |
Option
| option_id | option_name |
| -------- | -------------- |
| 5 | Size |
| 6 | Color |
Option_value
| option_value_id | option_id |option_name|
| -------- | -------------- |-----------|
| 8 | 5 | XXL |
| 9 | 5 | L |
| 10 | 6 | RED |
| 11 | 6 | BLUE |
dependent_option
| id | parent_option_value_id| child_option_value_id| Qty |
|----| --------------------- | -------------------- |-----------|
| 1 | 8 | 10 | 200 | XXL-RED
| 2 | 8 | 11 | 9 | L-RED
| 3 | 9 | 10 | 300 | XXL-BLUE
| 4 | 9 | 11 | 4999 | L-BLUE
我有多个与一个主要实体相关的多对多关系。
表格(名称不同,但更容易演示):
products
- id
- every other data
colors
- id
- every other data
sizes
- id
- every other data
product_color
- product_id
- color_id
product_size
- product_id
- size_id
我想在某处存储一个号码,例如50 件绿色和 XXL 尺寸的 T 恤产品,但只有 20 件绿色和 M 尺寸的 T 恤产品。我将把这个号码存储在哪里?我的数据库结构对于那个数据库结构是否有效?我正在使用 eloquent + mysql.
我会丢掉 product_color
和 product_size
tables,并添加一个 stock
table,其中包含产品、尺寸和颜色:
stock
- id -- May be redundant, depends on your application
- product_id -- FK to products.id
- color_id -- FK to colors.id
- size_id -- FK to sizes.id
- amount
您需要创建 4 个 table -
- 产品table - 与产品相关的信息,如名称、图片、描述、状态
- 选项table - 与大小、颜色等选项相关的信息
- 选项值 - 与 XL、XXL、RED、GREEN、BLUE 等选项值相关的信息
- 相关选项 - 对于选项
products
- product_id (Primary key)
- every other data
option
- option_id (Primary key)
- option_name(color|size)
option_value
- option_value_id
- option_id
- name
product_option
- product_id
- option_id
- Quantity
Product -
| product_id | name |
| -------- | -------------- |
| 1 | Tshirt |
| 2 | Jeans |
Option
| option_id | option_name |
| -------- | -------------- |
| 5 | Size |
| 6 | Color |
Option_value
| option_value_id | option_id |option_name|
| -------- | -------------- |-----------|
| 8 | 5 | XXL |
| 9 | 5 | L |
| 10 | 6 | RED |
| 11 | 6 | BLUE |
dependent_option
| id | parent_option_value_id| child_option_value_id| Qty |
|----| --------------------- | -------------------- |-----------|
| 1 | 8 | 10 | 200 | XXL-RED
| 2 | 8 | 11 | 9 | L-RED
| 3 | 9 | 10 | 300 | XXL-BLUE
| 4 | 9 | 11 | 4999 | L-BLUE