我正在将react-admin
与hasura
一起用作Postgres的API。
我需要基本上都是一个人但目的不同的不同实体。例如。学生和老师。我在想,鉴于类似的属性,最好有一个人表可以共享共同的功能,然后拥有一个用于特定属性的表。例如,这样的表格:
persons {
id,
first_name,
last_name,
birthday
...
}
students {
id,
person_id,
date_enrolled
...
}
teachers {
id,
person_id,
sallary
...
}
我遇到该模式的问题是,为了创建一个学生,必须先创建一个人。因此,在React-Admin中,我将不得不为用户提供首先创建一个人的表格,然后向另一个形式创建基于该人的学生。
我猜这不是理想的,也许最好在两个表中重复某些字段(first_name,last_name,生日...),但最好有students
和teachers
的单独表格。
这个问题并不是react-admin
的特定特定的,而是有关类似DB模型设计的更多一般建议,因此任何提示都非常欢迎:)。
此要求非常适合PostgreSql's table sashitance”功能。
您可以将student
和teacher
建模为person
的继承子女。那么一切都应该按照您的意愿工作。查询person
将返回两个表的结果。