0

我们开发了自己的自托管 WCF 服务,并且几个 PHP 应用程序使用该服务与设备进行通信。

要将数据发送到我们需要的设备,设备信息和我们要发送的数据,我们也有相反的方式,获取数据。

我们有几个结构来管理数据:设备、用户、用户信息、显示信息、事件、日志......当我们发送数据时,我们使用类似的东西:

bool SetUsers(Device d, User[] u);

这工作正常,但是使用 PHP,我们每个设备发送数据,所以如果我们有 50 个设备和 2000 个用户,我们发送 2000 个用户的 50 倍,你可以看到这可以做得更好。

所以我们认为我们可以使用类似的东西:

bool SetUsers(Device[] d, User[] u);

这也行得通,但大多数时候并不是所有用户都必须访问所有设备,所以最新的方法是不行的,第一种方法是发送大量冗余数据。

我的问题是:一次通话向 50 台设备发送 2000 个用户或 2000 个 userInfo 或 2000 个 displayInfo 的最佳方式是什么?

我想到了三种可能的方法:

  1. 在 Device Struct 中包含几个 Struct 的可变属性。发送数据的最佳方式,组织数据的麦汁方式。
  2. 在每个 Struct、User、UserInfo... 中包含 Device Struct,然后我们将在我们的代码中对它进行相应的排序。喜欢它,但不认为是最好的方法。
  3. 发送所有设备 + 所有数据相关 + 第三个 Struct 关联它们两者。我必须在每个结构中生成自定义 ID 并创建一个多对多结构。(不知道具体如何)。

你认为哪一种是最好的方法?也许是一个新的和改进的?

谢谢!!!

4

1 回答 1

0

如果我理解正确,您的设备对象可以与多个用户、UserInfo 或 DisplayInfo 相关联,在这种情况下,我会在逻辑上将它们分组为 DeviceUser、DeviceUserInfo 和 DeviceDisplayInfo 对象,并在其中包含 User / UserInfo / DisplayInfo 的 IEnumerable 集合。

例子,

DeviceUser
- DeviceId (int)
- Users (IEnumerable<User>)
- Make (string)
- Year (int)
于 2013-02-07T07:55:23.797 回答