繁体   English   中英

将数据存储在平面文件中

[英]Storing data in flat files

我有两个奇怪的格式的数据文件。 需要将其解析为某种下降格式,以用于将来使用。 解析后,我最终得到两种格式,其中一种具有ID,并且与该ID有关的信息将来自另一文件。

例如:从文件1我得到

名称,位置,PropertyID

来自文件2 PropertyId,Property1,Property2

像这样我有两个文件的更多列。

将这些信息以平面文件存储到服务器作为数据库的空闲方式是什么? 由于某种原因,我不想使用数据库(Mysql,MsSql)。

最初我想到使用单个逗号分隔的文件。 但是我最终会使用太多的列,当我更新这些信息时会产生问题。

我将在其他使用Java和python的应用程序中使用已解析的数据,任何人都可以提出更好的方法来解决此问题

谢谢

我会使用JSON。 JSON可以轻松地在Python或Java对象之间来回转换。 在Python中,JSON直接映射到dict。 Java具有多种转换功能。 比自己做的事少得多。 对于Java,请参阅JAXB。

这样的事情。

文件1:将人员映射到propertyID

{
   {"firstName": "John", "lastName": "Smith", "position": "sales"} : 123},
   {"firstName": "Jane", "lastName": "Doe", "position": "manager"} : 456} 
}

文件2:将propertyId映射到属性列表。

{
    {123: [{"address": "123 street", "city": "LA"}, {"address": "456 street", "city": "SF"}] } ,
    {456: [{"address": "123 ave", "city": "XX"}, {"address": "456 ave", "city": "SF"}] } 
}

ps将一个人与一个属性ID列表相关联,并让每个属性都有其自己的ID可能更有意义。 更轻松地移动和重新分配。 只是我的$ 0.02。

确保使用ID对数据进行规范化,即使仅做一次更改,也可以避免涉及这么多不同的数据列。 就像您上面提到的file2一样,您可以通过仅具有propertyId和property列将列减少为两列。 在上面的示例中,您将没有1个propertyId与2个属性相关联,而是将1个propertyId与1个属性相关联。 您需要另一个文件来关联两个主数据表。 这样对数据进行规范化可以使更改发生时对它们的更新非常少。

文件1:

owner_id | 名称| 位置|
1 | 马云| 总裁|

文件2:

property_id | 物业|

101 | 好莱坞大厦|

102 | 迈阿密海滨别墅

文件3:

OwnerId | PropertyId |

1 | 101

1 | 102

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM