我们开发了自己的自托管 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 的最佳方式是什么?
我想到了三种可能的方法:
- 在 Device Struct 中包含几个 Struct 的可变属性。发送数据的最佳方式,组织数据的麦汁方式。
- 在每个 Struct、User、UserInfo... 中包含 Device Struct,然后我们将在我们的代码中对它进行相应的排序。喜欢它,但不认为是最好的方法。
- 发送所有设备 + 所有数据相关 + 第三个 Struct 关联它们两者。我必须在每个结构中生成自定义 ID 并创建一个多对多结构。(不知道具体如何)。
你认为哪一种是最好的方法?也许是一个新的和改进的?
谢谢!!!