如何在一列sql中存储多个值

bjp0bcyl  于 2021-06-15  发布在  Mysql
关注(0)|答案(2)|浏览(346)

因此,我正在为我的业务建立一个网络应用程序,我需要记录三件事,即项目批号和零件号,以及胶水重量。批号和零件号已完成,但我需要有一个胶水重量表,存储每小时的胶水重量的项目正在生产。
基本上我是在问一个如何存储一列的多个胶水权重条目?
前任。
批号:12345零件号:1234批号胶重1234:1.07 2.07 1.56 1.45(等。。。生产产品所需的每小时)

csga3l58

csga3l581#

下面是一个粗略的例子:
产品表:

id | lot_number | part_number
1  | 12345      | 1234
2  | 56789      | 5567

重量表

id | product_id | weight | date_time
1  | 1          | 1.07   | 2001-01-02 12:25:12
2  | 1          | 2.07   | 2001-01-02 13:25:12
3  | 1          | 1.56   | 2001-01-02 14:25:12
4  | 1          | 1.45   | 2001-01-02 15:25:12
5  | 2          | 1.07   | 2001-01-02 12:25:12
6  | 2          | 2.07   | 2001-01-02 13:25:12
7  | 2          | 1.56   | 2001-01-02 14:25:12
8  | 2          | 1.45   | 2001-01-02 15:25:12

在weight表中,您现在可以进行sql查询,以获得每小时的所有重量测量值。

erhoui1w

erhoui1w2#

您可以通过多种方式在一列中为一行存储多个值;但也许有更好的解决办法。
例如,如果使列能够容纳一个大字符串,则可以将数据存储为csv、制表符分隔、xml、json等。但是,通过这样存储数据,在编写sql查询时很难检查该数据。幸运的是,使数据库如此强大的原因是它们如何将数据关联在一起。
在您的例子中,您希望根据批号和零件号的一个组合存储多个权重。这叫做一对多关系。您将有一个用于批号和零件号的表,其中每一行都有一个唯一的标识符(这将是该表的主键)。
另一个表将存储权重,另一个表中的每一行对应一个权重。第二个表中的每一行引用第一个表中的特定行,方法是在第二个表中有一列包含第一个表的唯一标识符列中的值(这称为外键)。
一旦你做到了这一点,你的数据现在是正常的。现在可以使用联接将数据组合在一起。并使用聚合来查找sum、min、max等。

相关问题