我正在设计一个数据库,存储产品(存储、CPU、mobos、内存等)和有关产品的信息
(规格、销售特定产品的零售商和价格)
部件号和产品(mobo、内存等)表是否应使用一对一关系?或者我应该将每个部件号存储在它自己的产品表中,并将价格和产品表与部件号链接在一起?
Er图
http://prntscr.com/b5ovuj
桌子
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
==============================================================================
最佳答案
如果您认为并假设此表中的零件号为part_numbers
,请使用一个表。如果此表中的零件号是唯一的,则不能再引入3个表来减少冗余。
您可以在unique
中再设置一个field/attribute
作为part_number
,在这里您可以指定:CPU、内存或Mobo。