Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库设计-我应该使用一对一关系吗?_Php_Mysql - Fatal编程技术网

Php 数据库设计-我应该使用一对一关系吗?

Php 数据库设计-我应该使用一对一关系吗?,php,mysql,Php,Mysql,我正在设计一个数据库来存储产品(存储、CPU、mobos、内存等)和有关产品的信息 (规格、销售特定产品的零售商和价格) 我是否应该对零件号和产品(mobo、内存等)表使用一对一关系?或者我应该将每个零件号存储在它自己的产品表中,并将价格和产品表与零件号链接在一起 Er图 桌子 Cpu table ========================================= Id |part_number_id | Specifications .... ===============

我正在设计一个数据库来存储产品(存储、CPU、mobos、内存等)和有关产品的信息 (规格、销售特定产品的零售商和价格)

我是否应该对零件号和产品(mobo、内存等)表使用一对一关系?或者我应该将每个零件号存储在它自己的产品表中,并将价格和产品表与零件号链接在一起

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
==============================================================================

在这种情况下,我通常将所有类型产品中的公共字段存储在一个名为“products”的表中,公共字段如下:

ID,Title,Partnumber,...

并将Products表中的主键用作Mobo、Memory等其他表中的外键

如果您认为并假设此表中的零件号是唯一的,请使用一个表
零件号
。如果此表中的零件号是唯一的,则不能通过再引入3个表来减少冗余


您可以在
零件号
中有另一个
字段/属性
作为
类型
,您可以在其中指定:CPU、内存或Mobo。

非常感谢您的帮助:)