3

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

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

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

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

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

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

谢谢

4

2 回答 2

2

最好的办法是,最终将所有数据存储在关系数据库中。根据数据集的大小和访问方式,MySQL 或 SQLite 可能是不错的选择。这将使您可以很容易地根据每个客户选择所需的数据。

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

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

我建议不要使用 MaxMind 格式,除非你有特定的理由。使用更通用的数据库接口,您会发现更多支持。

于 2013-05-21T21:40:40.527 回答
1

你的问题是:

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

答案是肯定的——如果您准备对您熟悉的 Maxmind API 进行逆向工程。对我来说,这将是C# 示例。您可以查看代码如何读取格式并从中破译它期望的格式。

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

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

于 2013-05-24T01:41:46.720 回答