Database 如何为Laravel中的类型和类别设计数据库?

Database 如何为Laravel中的类型和类别设计数据库?,database,laravel,laravel-5,database-design,Database,Laravel,Laravel 5,Database Design,如问题所述,为类型和类别设计数据库时,最好的方法是什么 场景: 我有x个数据库表,例如用户、反馈、事实和国家,所有这些表都有一个type属性。我发现很多人倾向于只为其中的每一个创建类型表。例如,用户类型、反馈类型、事实类型和国家类型 我目前正在做一个项目,我不想创建一堆额外的表来处理它们各自的类型。因此,我试图提出一个适合所有表的数据库设计解决方案 我的最佳解决方案: 起初,我认为我可以创建一个多态表,它有id、type\u id、typable\u id和typable\u type以及一个t

如问题所述,为类型和类别设计数据库时,最好的方法是什么

场景:

我有x个数据库表,例如用户、反馈、事实和国家,所有这些表都有一个type属性。我发现很多人倾向于只为其中的每一个创建类型表。例如,用户类型、反馈类型、事实类型和国家类型

我目前正在做一个项目,我不想创建一堆额外的表来处理它们各自的类型。因此,我试图提出一个适合所有表的数据库设计解决方案

我的最佳解决方案:

起初,我认为我可以创建一个多态表,它有id、type\u id、typable\u id和typable\u type以及一个types表。然后我想我必须在types表中指定哪个type属性属于哪个表。然后我突然想到,我可以创建一个自引用表,其中父名称是表名

例如

这个设计可以吗?我对这个表中的父表名考虑了很多,我没有看到其他人使用表名作为父表名

如果从前端的角度考虑,根据您要查找的类型更容易获得正确的类型


请给我反馈。我正在努力寻找一个好的设计。

你可以检查一下:@NitishKumar我知道自引用设计是如何工作的。我想弄清楚的是我的描述是否是一个好的设计。我的意思是,我使用父名称作为表名,以便更容易地找到属于哪个表的类型。您可以检查:@NitishKumar我知道自引用设计是如何工作的。我想弄清楚的是我的描述是否是一个好的设计。我的意思是,我使用父名称作为表名,以便更容易地找到属于哪个表的类型。
---------------------------------------------
|id | parent_id | name        | description |
---------------------------------------------
| 1 | null      | feedback    | something   |
---------------------------------------------
| 2 | 1         | general     | something   |
---------------------------------------------
| 3 | 1         | bug         | something   |
---------------------------------------------
| 4 | 1         | improvement | something   |
---------------------------------------------
| 5 | null      | countries   | something   |
---------------------------------------------
| 4 | 5         | europe      | something   |
---------------------------------------------
| 4 | 5         | asia        | something   |
---------------------------------------------
| etc...                                    |
---------------------------------------------