laravel+mysql-存储有说服力的名称空间

xlpyo6sf  于 2021-06-20  发布在  Mysql
关注(0)|答案(2)|浏览(270)

我得到了这个项目的工作与绝对没有文档或联系开发人员。我注意到,在数据库转储中,它们在两个表中存储了类似于php名称空间的雄辩模型。例如,地址表有一个名为“object\u type”的字符串列,其值始终为“app\entities\client”。我在整个项目中搜索使用这个值的php代码。希望能让我了解它的目的。不出所料,这个项目从来没有使用这个值。我只是看到它硬编码这些值插入到数据库。
我的问题是,这是某种数据库和/或orm建模设计实践吗?如果是这样的话,你能解释一下如何在简单的实际意义上使用它吗?
也许这是开发人员的一些概念,但它从未进化。这是一个有趣的想法,但是,通过mysql在一个字符串上连接的想法听起来像是折磨。

pqwbnv8z

pqwbnv8z1#

我不知道开发商在想什么。
但是想象一下,我们在一个论坛里,每个帖子都有回复。我们可能想有一个收藏夹表,我们可以保存回复和线程。
一种方法是在Favorites表中有一个名为“object\u type”的列(仅使用与您案例中相同的术语),然后当我们将一个对象保存到数据库中时,我们可以使用:

$favourite->object_type = get_class($thread); //or get_class($reply) in case we want a reply
$favourite->save();

这样会将该类的命名空间保存到数据库中。但当我们从数据库中得到它时,拉雷维尔会认出它的。
希望这感冒能有帮助。

mbzjlibv

mbzjlibv2#

听起来像是拉威尔多态关系:
自定义多态类型。
默认情况下,laravel将使用完全限定的类名来存储相关模型的类型。
是的,这是一种有效的建模技术,尽管纯粹主义者正确地认为这种技术滥用了范式。

相关问题