2

我使用react-adminwithhasura作为 Postgres 的 API。

我需要不同的实体,这些实体基本上都是一个人,但目的不同。例如。一个学生和一个老师。我在想,考虑到相似的属性,最好有一个共享共同特征的人员表,然后为特定属性设置一个单独的表。例如,像这样的表:

persons {
    id,
    first_name,
    last_name,
    birthday
    ...
}

students {
    id,
    person_id,
    date_enrolled
    ...
}

teachers {
    id,
    person_id,
    sallary
    ...
}

我遇到的那个模式的问题是,为了创建一个学生,必须首先创建它的人。因此,在 react-admin 中,我必须先向用户展示一个用于创建人的表单,然后再向用户展示另一个表单以基于该人创建一个学生。

我想这并不理想,也许最好有单独的表studentsteachers尽管某些字段(名字,姓氏,生日......)会在两个表中重复。

这个问题并不是真正具体的,react-admin而是更多关于类似数据库模型设计的一般建议,所以任何提示都非常受欢迎:)。

4

1 回答 1

1

这个要求非常适合 PostgreSQL 的“表继承”特性

您可以将student和建模teacherperson. 然后一切都应该按照你的意愿工作。查询person将返回两个表的结果。

于 2019-02-28T16:29:22.963 回答