从我的理解,cakephp不支持数据库继承关系.但是,我想创建一个具有不同类型用户的数据库.
在这种情况下,有三种类型的用户:Seller,Customer,和Administrator.每个用户都应该具有基本的用户信息,例如password,username等等.
然而,每个类型的用户都会有自己独特的一套DATAS的.例如,卖家可能有inventory_id,而客户可能有delivery_address等.
我一直在考虑在不破坏cakephp约定的情况下为这个问题创建一个解决方法.我要创建三个额外的外键admin_id,seller_id并且customer_id,用户表,它链接到其他表内.但是,知道这不是IS-A关系HAS-A,我必须确保两个id是NULL值.因此,这种解决方法对我来说似乎很难看.
还有其他更简单,更好的方法吗?
对于这种类型的数据库结构,我可能会考虑采用实体-属性-值模型。这意味着您的客户可能有一个delivery_address,您的用户可能有一个inventory_id,但就您在Cake中的关系而言,您的用户和客户都只有一个attribute_id...然后您可以创建另一个表来存储什么类型的属性可用。
这是最简单的形式,您的用户和客户将通过 hasMany(可能)关系附加到 *attribute_lookup* 或 *attribute_link* 表。该attribute_lookup/link表将通过belongsTo/hasOne关系连接到实际的属性类型和属性值模型。
如果您正确规范化表格,您就可以很好地遵守 Cake 关系约定。
您可以在此处阅读有关 EAV 的更多信息。
| 归档时间: |
|
| 查看次数: |
935 次 |
| 最近记录: |