用于存储GEDCOM信息的数据库结构是什么?
答案 0 :(得分:1)
如果您使用GEDCOM解析器将GEDCOM数据加载到程序中的数据结构中,则应设计一个数据库结构,以便将内部数据表示轻松映射到关系数据库表示。
例如,如果您使用的是Java,则可以使用gedcom4j将数据加载/写入java对象图,以便在需要导入/导出功能时使用。该数据在内部存储在java对象图中,然后可以使用JPA或Hibernate或JDO将其保存到您选择的数据库中...这将更容易,数据库方案与对象图更匹配,但您可以配置如果你想要一个不同的结构...只是使映射更复杂。
当然,如果您只想将GEDCOM数据保存在数据库中而不解释它,那么将整个文件保存在一个大对象中的bigtext结构对我来说有点意义......假设您有多个文件并且只是想要保持内容。
答案 1 :(得分:0)
将GEDCOM行个人存储在数据库中似乎毫无意义,您将无法获得使用数据库的任何优势。 Māris是正确的,但根据GEDCOM规范,255就足够了,因为255是线路长度的硬限制。 (5.5.1规范草案第11页)。
正确的方法是使用现有的GEDCOM解析器(例如gedcom.net)或创建自己的(这不像许多示例那么简单)然后插入到数据库中。请查看http://sqlitetoolsforrootsmagic4.wikispaces.com/,其中包含有关RootsMagic使用的架构的信息。