在一个存储有关计算机和相关硬件信息的数据库中,我想保留计算机中的拉杆记录。每台计算机都有一个序列作为主键。我想创建第三个表,将摇杆与计算机序列相关联。
计算机
+--------+--------+---------+
| serial | brand | model |
+--------+--------+---------+
| abc | Dell | 180 |
| def | Dell | 720 |
| xyz | Lenovo | YogaMat |
+--------+--------+---------+
ram_sticks
+--------+--------+------+------+-------+
| ram_id | DIMM | Size | DDR | Speed |
+--------+--------+------+------+-------+
| 1 | DIMM | 2048 | DDR2 | 6400 |
| 2 | DIMM | 1024 | DDR2 | 6400 |
| 3 | SODIMM | 2048 | DDR2 | 5300 |
+--------+--------+------+------+-------+
computers_ramsticks
+--------+--------+
| serial | ram_id |
+--------+--------+
| abc | 1 |
| abc | 1 |
| xyz | 3 |
| xyz | 3 |
+--------+--------+
如何处理相同关系的多个实例?通常,一台计算机可以具有多个相同的内存条。我无法可靠地猜测每台计算机中将有多少个ram插槽。
答案 0 :(得分:2)
基本上,您有两种选择。如果所有“ ram_id”都相同,则可以将一个计数添加到关联表中。如果记录已经存在,那么您的“插入”将使用on duplicate key update
来增加计数。而您的“删除”将减少计数。
我将更可能采用第二种方法。这将为每个RAM ID添加一个单独的行。我会在表格中添加其他列:
也许其他信息也合适,例如广告位。