创建像maxmind这样的二进制文件

时间:2013-05-16 17:41:26

标签: binary binaryfiles

我需要为客户提供一组公共数据(数据是私有的,因客户而异)。每个客户端都有不同的结构,需要不同类型的数据。我有50多个客户,他们都需要不同的语言(法语,西班牙语,英语,意大利语和德语)。

其中一些每个唯一记录得到10个字段,有些得到2个。

他们中的一些使用linux作为他们的主要(我认为是centos),其他使用windows服务器(本地服务器和web服务器),这个文件也将用于本地应用程序(win32,php等...)。

在挖掘出一个常见的解决方案后,我发现我可以创建类似maxmind的东西(我认为它是一个二进制文件,你提供了一个索引来检索信息。

我无法创建API,因为某些客户端在专用网络上使用他们的计算机,这些网络可以在特定时间访问互联网(有点像学校实验室)。

现在,有没有办法创建像maxmind这样的数据文件?

由于

2 个答案:

答案 0 :(得分:2)

最好的办法是,将所有数据存储在关系数据库中。根据数据集的大小以及如何访问它,MySQL或SQLite可能是不错的选择。这样可以非常轻松地根据每个客户端选择所需的数据。

对于每个客户端,开发一个SQL查询以提取他们需要的所有数据(而不是更多)。编写脚本以运行查询并填充另一个数据库(发送到客户端)或简单的CSV文件。 (如果CSV计划将数据添加到自己的数据库中,则CSV可能会更容易,然后他们可以轻松地将更改从您最后发送的内容中进行区分。)

现在,您可以为数据提供方便的存储解决方案,并提供一种简单的方法来提取与每个客户端相关的数据。您可以通过编写脚本来定期执行每个客户端查询,甚至将其邮寄出去,从而轻松实现流程自动化。

我建议不要使用MaxMind格式,除非您有特定原因。您可以使用更常见的数据库界面找到更多支持。

答案 1 :(得分:1)

你的问题是:

  

有没有办法创建像maxmind这样的数据文件?

答案是肯定的 - 如果您准备对您熟悉的Maxmind API进行逆向工程。对我来说就是C# sample。您可以查看代码如何读取格式并从其预期的格式中解读。

作为替代方案,请创建自己的二进制格式。要创建自己的二进制格式非常简单,您可以决定内部格式(可能使用JSON或XML),然后将其转换为Base64。您需要做的就是将base64(二进制数据)转换为字符串格式,然后使用库来解释JSON或XML。

使用类似的东西将JSON转换为二进制文件:http://wiki.fasterxml.com/SmileFormat

相关问题