在存储有关计算机和相关硬件的信息的数据库中,我想保留计算机中内存条的记录。每台计算机都有一个序列号作为主键。我想创建一个第三个表,将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插槽。
1条答案
按热度按时间dhxwm5r41#
基本上你有两个选择。如果所有“ram\u id”都相同,则可以向关联表中添加一个计数。那么你的“插入”将使用
on duplicate key update
如果记录已经存在,则增加计数。你的“删除”会减少计数。我更有可能采取第二种方法。这将为每个ram id添加一个单独的行。我将在表中包括其他列:
自动生成的唯一id
创建日期(大概是“安装”日期)
也许其他信息也合适,比如插槽。