0

地理空間データを格納するデータベース スキーマに取り組んでいます。ポイントの名前や説明などの文字列の国際化をサポートし、すべての変更のログ記録をサポートする必要があります。

これは私の現在のスキーマです:

points
---------------
rev_id (int autoincrement)
rev_from (date)
rev_to (date)
rev_operation (insert/update/delete)
rev_user (user who has made the modification)
point_id (int)
point_geom (geometry)
point_name_en
point_desc_en
point_name_fr
point_desc_fr

それは正常に機能しますが、新しい言語を追加するたびにデザインを更新する必要があり、1 つの翻訳を更新する場合は行全体をコピーする必要があります...これはデータの重複につながります。したがって、ローカライズされた文字列を別のテーブルに配置することを避けるために:

points
---------------
rev_id (int autoincrement)
rev_from (date)
rev_to (date)
rev_operation (insert/update/delete)
rev_user (user who has made the modification)
point_id (int)
point_geom (geometry)

points_text
---------------
point_id (int)
lang_code (en/fr/es/it etc...)
point_name
point_desc

動作しますが、翻訳の変更を追跡できません。

オブジェクトをプロパティの翻訳とプロパティの変更履歴と共に保存するデータベースを設計する最良の方法は何ですか?

4

1 に答える 1

0

rev_ フィールドを points_text に追加してみませんか (これにはエラーがあると思います - 質問に対する私のコメントを参照してください)。

ポイントの挿入とテキストの挿入という 2 つの概念を分離する必要があります。どちらもリビジョンを持つことができます。両方が同時に発生する場合もあります。

必要に応じて、そのリビジョン データを別のテーブルに移動し、両方のポイント テーブルから参照することができます。これにより、両方が一緒に変更されたときに同じエントリを共有できます。

于 2012-08-06T00:58:08.057 に答える