Php 具有角色的MySQL用户,角色特定字段?
我有一个应用程序,用户可以是供应商或商店。 现在,这两个角色具有非常不同的角色特定字段 基本上,商店可以向供应商下订单。。因此,商店可以下订单,而供应商将收到这些订单。 我将把这些字段放在哪里进行良好实践Php 具有角色的MySQL用户,角色特定字段?,php,mysql,database,laravel,database-design,Php,Mysql,Database,Laravel,Database Design,我有一个应用程序,用户可以是供应商或商店。 现在,这两个角色具有非常不同的角色特定字段 基本上,商店可以向供应商下订单。。因此,商店可以下订单,而供应商将收到这些订单。 我将把这些字段放在哪里进行良好实践 将它们全部添加到用户类中,并使用可为空的类型(似乎不正确!) 为每个角色创建不同的类。所以我们有一个带有用户id的供应商类和一个带有用户id的商店类,我必须使用$user->Supplier->field或$user->Shop->field查询这些字段 这两个似乎都不是一个好办法。有什么
- 将它们全部添加到用户类中,并使用可为空的类型(似乎不正确!)
- 为每个角色创建不同的类。所以我们有一个带有用户id的供应商类和一个带有用户id的商店类,我必须使用$user->Supplier->field或$user->Shop->field查询这些字段
谢谢大家! 您不必只使用一个
users
表。您可以有供应商模型和车间模型(带有供应商
和车间
表)
然后在config/auth.php
文件中,您可以使用雄辩的驱动程序设置一个新的auth提供程序,但模型不同。然后,您可以将这些提供程序分配给您创建的任何新防护
您可以在此处阅读有关身份验证和授权的更多信息:
编辑
在关于多态关系的评论中提到它之后,我认为它更适用于这种类型的关系(多种类型的用户,每个用户都有自己的字段集)
请在此处阅读更多信息:
一个用户可以拥有多个店铺或供应多个店铺吗?你的第二个选择似乎不错 用户有很多:供应商、商店
-id
-名字 供应商属于供应商,有一个:用户
-id
-用户id
-野战队供应商 购物属于商店,只有一个:用户
-id
-用户id
-菲尔兹酒店
$user->supplier->fields\u supplier
$user->shop->fields\u shop
$supplier->user->name
$shop->user->name代码>
--
如果你有更多关于你希望它如何工作的信息,它会有所帮助。“供应商”是由“一方”(“个人”或“组织”)扮演的角色
您的商店可能会从供应商处获得目录,并可能要求他们提供报价
您的商店创建“采购订单”并将其发送给供应商,然后他们向您发送“订单响应”
供应商不是用户。不过,你可以为他们的员工创建“用户”
为什么不使用像Odoo这样的现有ERP?我认为这实际上取决于应用程序的上下文。尝试提供有关应用程序其余部分的更多信息,因为这将有助于确定正确的方法。商店可以向供应商下订单。。因此,一家商店可以下订单,而供应商将收到这些订单。画出两种方式,包括选择
。完成后,您将回答自己的问题。(也就是说,仍然没有足够的信息来通知您。)如果多态性仅适用于身份验证,那么这将起作用。如果存在其他多态方面,例如:“订单可以属于供应商或商店”,Laravel支持多态关系(请参见:)我正在考虑该选项。但是这样做不是要花费很多开销吗?角色的整个概念不再适用了,对吗?如果出现了管理员角色呢?如果可以看到所有订单,那么我必须创建另一个身份验证提供程序?对吧?我修正了我的答案。我同意Jeffrey的观点,多态关系会很有帮助。谢谢,这样供应商可以有订单,但商店也可以。。他们都是用户。。你认为这是多态性吗?谢谢你的回答。现在的问题是,供应商和商店都有订单,商店发送订单,供应商接收订单。。但如果我调用$user->orders。。或者你会这样做:$user->shop->orders和$user->supplier->orders这是一个类似于:1的流程。商店创造秩序,2。订单可供供应商使用,3。供应商接受这个订单并履行它?在这种情况下,我会考虑添加“创建的”(SuffyID)和“满足”(PuuliSeriID)列来排序。这些列可以成为相对键吗?