我正在研究一个数据库模式来存储地理空间数据,我需要支持点名称和描述等字符串的国际化,并支持记录所有修改。
这是我当前的架构:
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
它工作正常,但是每次添加新语言时我都必须更新设计,并且在我更新一个翻译的情况下,我必须复制一整行......这会导致数据重复。所以为了避免我想把本地化的字符串放在另一个表中:
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
它有效,但我无法跟踪翻译的修改。
设计一个数据库的最佳方法是什么,该数据库存储对象及其属性的翻译和属性修改的历史。