Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 普通人表,教师和学生专用表还是单独的表?_Postgresql_Admin On Rest_React Admin_Hasura - Fatal编程技术网

Postgresql 普通人表,教师和学生专用表还是单独的表?

Postgresql 普通人表,教师和学生专用表还是单独的表?,postgresql,admin-on-rest,react-admin,hasura,Postgresql,Admin On Rest,React Admin,Hasura,我正在使用react admin和hasura作为Postgres的API 我需要不同的实体,它们基本上都是一个人,但目的不同。一个学生和一个老师。我认为,考虑到类似的属性,最好有一个共享公共特性的person表,然后有一个针对特定属性的单独表。例如,类似这样的表: persons { id, first_name, last_name, birthday ... } students { id, person_id, date_

我正在使用
react admin
hasura
作为Postgres的API

我需要不同的实体,它们基本上都是一个人,但目的不同。一个学生和一个老师。我认为,考虑到类似的属性,最好有一个共享公共特性的person表,然后有一个针对特定属性的单独表。例如,类似这样的表:

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

students {
    id,
    person_id,
    date_enrolled
    ...
}

teachers {
    id,
    person_id,
    sallary
    ...
}

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

我想这并不理想,也许最好为
学生
教师
设置单独的表格,尽管两个表格中都会重复一些字段(名字、姓氏、生日…)


这个问题并不是针对react admin的,但更多的是关于类似db模型设计的一般建议,所以任何提示都非常受欢迎:)。

这个要求非常适合PostgreSQL


您可以将
学生
教师
建模为
的继承子代。那么一切都应该按照你的意愿进行。查询
person
将返回两个表的结果。

我不熟悉您使用的工具,但您能否创建一个包含两个表所需所有数据的表单?在内部,软件将首先插入个人数据,然后再插入学生/教师数据…我可以这样做,当然,但使用react-admin似乎不太容易。太好了,谢谢。不知道表继承。我正在阅读文档,不确定插入是否有效。。。