Php 数据库设计-我应该使用一对一关系吗?
我正在设计一个数据库来存储产品(存储、CPU、mobos、内存等)和有关产品的信息 (规格、销售特定产品的零售商和价格) 我是否应该对零件号和产品(mobo、内存等)表使用一对一关系?或者我应该将每个零件号存储在它自己的产品表中,并将价格和产品表与零件号链接在一起 Er图 桌子Php 数据库设计-我应该使用一对一关系吗?,php,mysql,Php,Mysql,我正在设计一个数据库来存储产品(存储、CPU、mobos、内存等)和有关产品的信息 (规格、销售特定产品的零售商和价格) 我是否应该对零件号和产品(mobo、内存等)表使用一对一关系?或者我应该将每个零件号存储在它自己的产品表中,并将价格和产品表与零件号链接在一起 Er图 桌子 Cpu table ========================================= Id |part_number_id | Specifications .... ===============
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
==============================================================================
在这种情况下,我通常将所有类型产品中的公共字段存储在一个名为“products”的表中,公共字段如下:
ID,Title,Partnumber,...
并将Products表中的主键用作Mobo、Memory等其他表中的外键如果您认为并假设此表中的零件号是唯一的,请使用一个表
零件号
。如果此表中的零件号是唯一的,则不能通过再引入3个表来减少冗余
您可以在
零件号
中有另一个字段/属性
作为类型
,您可以在其中指定:CPU、内存或Mobo。非常感谢您的帮助:)