Many-to-many relationships with multiple instances of the same item
所以我有很多
事实证明,这很难做到。我的第一个想法是在联接表中添加一个简单的
计划B只需要在同一个房间中添加包含同一设备的多个行。像这样的…
1 2 3 4 | for(var i = 0; i < newDevice.count; i++) { room.Devices.Add(device); } |
…不起作用。`.add(设备)将只添加一行,无论我循环多少次。这个问题可能是相关的。
在这个场景中,如何将同一行的多个实例添加到
为清晰起见编辑:
我要寻找的是一种为多对多表创建多行相同数据的方法。也就是说,我希望上面的代码片段生成与此类似的行:
1 2 3 4 5 6 | Rooms_Devices --------------------------- id | room_id | device_id 1 | 22 | 38 <--- same room, same device, three times 2 | 22 | 38 3 | 22 | 38 |
上面的代码产生了:
1 2 3 4 | Rooms_Devices --------------------------- id | room_id | device_id 1 | 22 | 38 <----just one row, not three |
问题是
编辑答案:
下面的答案是正确的,但是我没有立即理解它,所以我总结一下:在一个多对多的联接表中,ID对(
That is, a given room might have multiple instances of the same
projector model.
如果我理解你,那么你会考虑一个稍微不同的设计。对于每个物理设备,设备表都有一行。同一个物理设备不能在同一个房间内两次,因此不能同时在两个房间内。
您可以有一个设备类型表,其中每个模型或模型组(对于类似的模型)都有一行。
然后,可以轻松地对room、deviceType、count进行查询分组,而无需更新关联实体(roomsdevices)上的"count"字段。
当连接到设备类型(从设备表中键控)时,数据看起来像这样。我将添加它,就好像它是为了演示而加入的:
1 2 3 4 5 6 | Rooms_Devices ------------------------------------------- id | room_id | device_id | devicetypeid 1 | 22 | 3 | 38 2 | 22 | 4 | 38 3 | 22 | 5 | 38 |
对此进行查询将产生:
1 2 | room_id | devicetype_id | Count 22 | 38 | 3 |