如何在同一关系的多个示例存在的情况下保持关联表?

wmvff8tz  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(244)

在存储有关计算机和相关硬件的信息的数据库中,我想保留计算机中内存条的记录。每台计算机都有一个序列号作为主键。我想创建一个第三个表,将ram和计算机序列相关联。
计算机

+--------+--------+---------+
| serial | brand  |  model  |
+--------+--------+---------+
| abc    | Dell   | 180     |
| def    | Dell   | 720     |
| xyz    | Lenovo | YogaMat |
+--------+--------+---------+

木棍

+--------+--------+------+------+-------+
| ram_id |  DIMM  | Size | DDR  | Speed |
+--------+--------+------+------+-------+
|      1 | DIMM   | 2048 | DDR2 |  6400 |
|      2 | DIMM   | 1024 | DDR2 |  6400 |
|      3 | SODIMM | 2048 | DDR2 |  5300 |
+--------+--------+------+------+-------+

电脑和摇杆

+--------+--------+
| serial | ram_id |
+--------+--------+
| abc    |      1 |
| abc    |      1 |
| xyz    |      3 |
| xyz    |      3 |
+--------+--------+

如何处理同一关系的多个示例?通常情况下,一台计算机可以有多个相同的内存条。我无法可靠地猜测每台计算机中会有多少ram插槽。

dhxwm5r4

dhxwm5r41#

基本上你有两个选择。如果所有“ram\u id”都相同,则可以向关联表中添加一个计数。那么你的“插入”将使用 on duplicate key update 如果记录已经存在,则增加计数。你的“删除”会减少计数。
我更有可能采取第二种方法。这将为每个ram id添加一个单独的行。我将在表中包括其他列:
自动生成的唯一id
创建日期(大概是“安装”日期)
也许其他信息也合适,比如插槽。

相关问题