GEDCOM 情報を格納するために使用するデータベース構造は?
2 に答える
GEDCOMパーサーを使用してGEDCOMデータをプログラムのデータ構造にロードする場合は、内部データ表現をリレーショナルデータベース表現に簡単にマッピングできるデータベース構造を設計する必要があります。
たとえば、Javaを使用している場合は、インポート/エクスポート機能が必要な場合に備えて、gedcom4jを使用してデータをJavaオブジェクトグラフにロード/書き込みできます。そのデータは内部でJavaオブジェクトグラフに保存され、JPA、Hibernate、またはJDOを使用して、選択したデータベースに永続化できます。これにより、データベーススキームがオブジェクトグラフとより厳密に一致するほど簡単になりますが、構成できます。必要に応じて別の構造に変更します...マッピングを少し複雑にします。
もちろん、GEDCOMデータを解釈せずにデータベースに保持したいだけの場合は、ファイル全体を1つの大きなオブジェクトに保持するbigtext構造は、私には理にかなっています...複数のファイルがあり、それを保持したいだけだと仮定しますコンテンツとして。
GEDCOM の行を個別にデータベースに保存するのは、データベースを使用する利点が得られないような意味のないことのように思えます。Maris は正しいですが、255 は GEDCOM 仕様による行の長さのハード リミットであるため、255 で十分です。(ドラフト 5.5.1 仕様の 11 ページ) .
正しい方法は、既存の GEDCOM パーサー (gedcom.net など) を使用するか、データベースに挿入する独自のパーサーを作成することです (多くの例が示すほど単純ではありません)。RootsMagic で使用されるスキーマに関する情報が含まれているhttp://sqlitetoolsforrootsmagic4.wikispaces.com/をご覧ください。