Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 具有角色的MySQL用户,角色特定字段?_Php_Mysql_Database_Laravel_Database Design - Fatal编程技术网

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)列来排序。这些列可以成为相对键吗?