我不是数据库专家。,然而,我有一个商业案例,我想存储与一个拥有20000多名成员的大家庭有关的信息,从一位家长开始,插入出生的新成员,数据涉及他们的姓名、出生日期、职业、死亡数据等。
对于这种情况,最好的数据模型是什么?
在做了一项研究后,我有点混淆了层次数据模型和图形数据模型,那么,它们中的任何一个都适合这个问题还是另一个解决方案更好?
这个问题非常适合图形数据库领域,并且很容易实现。在InfiniteGraph中,数据模型如下所示:
UPDATE SCHEMA {
CREATE CLASS Person {
name : String,
dateOfBirth : DateTime,
dateOfDeath : DateTime,
education : List {
Element: Reference { EdgeClass: Education, EdgeAttribute School },
CollectionTypeName: TreeListOfReference
},
residence : List {
Element: Reference { EdgeClass: Residence, EdgeAttribute Address },
CollectionTypeName: TreeListOfReference
},
birthMother : Reference { referenced: Person },
birthFather : Reference { referenced: Person }
}
CREATE CLASS Education {
startDate : Date,
endDate : Date,
certificate : String,
school : Reference { Referenced: School }
}
CREATE CLASS School {
name : String
}
CREATE CLASS Residence {
startDate : Date,
endDate : Date,
address : Reference { Referenced: Address },
resident : Reference { Referenced: Person }
}
CREATE CLASS GeoPosition {
latitude : Float,
latitude : Float
}
CREATE CLASS Address SUPERCLASS GeoPosition {
street1 : String,
street2 : String,
city : String,
state : String,
country : String,
postalCode : String,
resident : List {
Element: Reference { EdgeClass: Residence, EdgeAttribute Person },
CollectionTypeName: TreeListOfReference
}
}
}
InfiniteGraph是一个可大规模扩展的面向对象图形数据库。我用这个产品解决了很多像你这样的问题。