gpt4 book ai didi

Cakephp模型继承关系的解决方法

转载 作者:行者123 更新时间:2023-12-02 02:05:53 25 4
gpt4 key购买 nike

据我了解,cakephp不支持数据库继承关系。但是,我想创建一个包含不同类型用户的数据库。

在本例中,存在三种类型的用户:卖家客户管理员。每个用户都应该有基本的用户信息,例如密码用户名
然而,每种类型的用户都会有自己独特的数据集。例如,卖家可能有inventory_id,而客户可能有delivery_address等。

我一直在考虑在不破坏 cakephp 约定的情况下创建解决此问题的方法。我打算在 User 表中创建三个额外的外键:admin_idseller_idcustomer_id,它们链接到其他表。但是,知道这是一个 IS-A 关系而不是 HAS-A,我必须确保其中两个 id 为 NULL 值。因此,这个解决方法对我来说似乎很丑陋..

还有其他更简单、更好的方法吗?

最佳答案

对于这种类型的数据库结构,我可能会考虑采用实体-属性-值模型。这意味着您的客户可能有一个delivery_address,您的用户可能有一个inventory_id,但就您在Cake中的关系而言,您的用户和客户都只有一个attribute_id...然后您可以创建另一个表来存储< em>类型属性可用。

这是最简单的形式,您的用户和客户将通过 hasMany(可能)关系附加到 *attribute_lookup* 或 *attribute_link* 表。该attribute_lookup/link表将通过belongsTo/hasOne关系连接到实际的属性类型和属性值模型。

只要您正确规范化表格,您就可以很好地遵守 Cake 关系约定。

您可以阅读有关 EAV 的更多信息 here .

关于Cakephp模型继承关系的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14111411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com