我正在开发基于 CouchDB 的地理编码应用程序,该应用程序使用以相关方式提供的大型国家数据集。大约 2.5 亿条记录分布在 9 个表中(ER 图可以在http://bit.ly/1dlgZBt查看)。我对 nosql 文档数据库和 CouchDB 非常陌生,并且正在考虑如何对此进行建模。我目前已将数据加载到每个表的 CouchDB 数据库中,其中的类型字段指示它是哪种记录。_id 属性设置为表 [A] 和 [C] 的主键,其他所有内容由 Couch 自动生成。我计划用 Couch 设置 Lucene 以进行索引和全文搜索。X 和 Y 点坐标都存储在表 [A] 中,但要找到这些,我需要使用 [表 E]、[表 B、C 和 D 组合] 和/或 [表 I] 中的数据进行搜索,并带有选项根据[表F]中的数据过滤结果。
我的初衷是创建一个单一的 CouchDB 数据库,它将所有这些表组合成一个单一的结构,其中 [Table A] 作为根,所有相关的表都嵌套在它下面。然后,我将在此基础上构建各种搜索索引,并使用 GeoCouch 设置空间索引以进行反向地理编码。但是,我读过一些文章,建议将查看排序规则作为一种替代方法。
我猜这里的一个重要因素是读取与写入。计划是这些数据永远不会被更新,只会被读取。每个季度都会发布数据,届时现有数据库将被吹走并创建一个新数据库。
我欢迎任何有经验的 Couch 或相关文档数据库用户就如何最好地设置和组织它提出任何建议。
非常感谢您的任何帮助。