我正在设计一个存储产品(存储,cpus,mobos,内存等......)的数据库以及有关产品的信息 (规格,销售特定产品的零售商和价格)
我应该使用part_number和产品(主板,内存等......)表的一对一关系吗?或者我应该将每个part_number存储在自己的产品表中,并将price和products表与part_number一起存储?
Er图
表
Cpu table
=========================================
Id |part_number_id | Specifications ....
=========================================
1 | 1 |
2 | 2 |
3 | 3 |
4 | 4 |
=========================================
Mobo table
=========================================
Id |part_number_id| Specifications ....
=========================================
101 | 101 |
102 | 102 |
103 | 103 |
104 | 104 |
=========================================
Memory table
=========================================
Id |part_number_id | Specifications ....
=========================================
201 | 501 |
202 | 502 |
203 | 503 |
204 | 504 |
=========================================
Retailers
=========================================
Id | name | Logo
=========================================
1 | Pcparts | pcparts.png
2 | bestpc | bestpc.png
3 | LMNC | lmnc.png
4 | GGWP | ggwp.png
=========================================
part_numbers
=======================
Id | part_number
=======================
1 | BX80646I74790K
2 ||BX80646I54690K
3 |BX80648I75820K
4 |FD8350FRHKBOX
5 |FD6300WMHKBOX
6 |BX80646G3258
7 |BX80646I54590
8 |BX80646I34160
101|FD8320FRHKBOX
102|BX80646I54460
103|BX80648I75930K
201|BX80646I54690
202|FD9590FHHKWOF
203|AD740KYBJABOX
======================
Price
==============================================================================
Id | part_number_id | retailer_id | product_url | Price
==============================================================================
1 | 1 | 1 |http://www.example.com/prod/id | 122.33
2 | 1 | 2 |http://www.example.com/prod/id | 133.41
3 | 1 | 3 |http://www.example.com/prod/id | 110.00
4 | 1 | 4 |http://www.example.com/prod/id | 105.05
5 | 101 | 1 |http://www.example.com/prod/id | 122.33
6 | 201 | 2 |http://www.example.com/prod/id | 133.41
7 | 101 | 3 |http://www.example.com/prod/id | 110.00
8 | 101 | 4 |http://www.example.com/prod/id | 288,19
9 | 201 | 1 |http://www.example.com/prod/id | 244,19
10 | 204 | 2 |http://www.example.com/prod/id | 277.09
==============================================================================
答案 0 :(得分:1)
如果您认为并假设此表中的部件号为part_numbers
,请使用一个表unique
。如果此表中的部件号是唯一的,那么您不会通过引入另外3个表来减少冗余。
您可以在field/attribute
中再添加一个part_number
作为type
,您可以在其中指定:CPU,内存或Mobo。
答案 1 :(得分:0)
在这种情况下,我通常将所有类型的产品中的公共字段存储在一个名称为" Products"有这样的常见字段:
ID,Title,Partnumber,...
并将Products表中的主键用作Mobo,Memory等其他表中的外键