家庭成员数据模型

Data model for family members

我不是数据库专家,但是我有一个业务案例,我想存储一个拥有 20,000 多位成员的大家庭的相关信息,从族长开始插入出生的新成员,数据涉及他们的姓名、出生日期、职业、死亡数据等。

这种情况的最佳数据模型是什么?

在进行研究后,我对层次数据模型和图形数据模型有点困惑,那么,它们中的任何一个都适合这个问题还是另一个解决方案更好?

这个问题完全属于图形数据库的范畴,而且很容易实现。在 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 是一个可大规模扩展的面向对象图形数据库。我已经使用该产品解决了很多像您这样的问题。