在 orientdb 上表示多语言数据库的最佳方式
Best way to represent multilingual database on orientdb
我有一个 MySQL 数据库来支持多语言网站,其中数据表示如下:
表1
id
is_active
created
table1_lang
table1_id
name
surname
address
在图形数据库上实现相同目标的最佳方法是什么?
创建两个类,然后定义它们之间的关系,这样对吗?
是的。你可以有这样的东西:
create class Table1 extends V
create property Table1.isActive boolean
create property Table1.created datetime
create class Table1Lang extends V
create property Table1Lang.name string
create property Table1Lang.surname string
create property Table1Lang.address string
create class Relation extends E
create vertex Table1 set isActive = true, created = sysdate()
// returns #12:0
create vertex Table1Lang set name = 'name', surname = 'surname', address = 'address'
// returns #13:0
create edge Relation from #12:0 to #13:0
正如您所看到的,我已经从两个表中删除了 ID 并改用记录 ID。如果性能对您很重要,您也应该这样做。
如果,例如,您想要来自 Table1Lang 的记录与来自 表1,你可以:
select expand(out('Relation')) from #12:0
// returns #13:0
我有一个 MySQL 数据库来支持多语言网站,其中数据表示如下:
表1
id
is_active
created
table1_lang
table1_id
name
surname
address
在图形数据库上实现相同目标的最佳方法是什么? 创建两个类,然后定义它们之间的关系,这样对吗?
是的。你可以有这样的东西:
create class Table1 extends V
create property Table1.isActive boolean
create property Table1.created datetime
create class Table1Lang extends V
create property Table1Lang.name string
create property Table1Lang.surname string
create property Table1Lang.address string
create class Relation extends E
create vertex Table1 set isActive = true, created = sysdate()
// returns #12:0
create vertex Table1Lang set name = 'name', surname = 'surname', address = 'address'
// returns #13:0
create edge Relation from #12:0 to #13:0
正如您所看到的,我已经从两个表中删除了 ID 并改用记录 ID。如果性能对您很重要,您也应该这样做。
如果,例如,您想要来自 Table1Lang 的记录与来自 表1,你可以:
select expand(out('Relation')) from #12:0
// returns #13:0