加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql-如何为不同类型的用户制作出价表结构

发布时间:2021-02-24 21:18:50 所属栏目:MySql教程 来源:网络整理
导读:我是如此的绝望,并且已经考虑了很长时间,无法想象我会多么感谢您的帮助.相信我. 这是我的情况.有3种类型的用户(角色).客户端,服务提供商,管理员. Client Adds new orders Service-Provider Executes added orders Admin makes sure clients added order is

我是如此的绝望,并且已经考虑了很长时间,无法想象我会多么感谢您的帮助.相信我.

这是我的情况.有3种类型的用户(角色).客户端,服务提供商,管理员.

Client – Adds new orders

Service-Provider – Executes added orders

Admin – makes sure client’s added order is correct,finds
service-provider and gives it to service-provider.

当客户添加新订单时,应该发生的是客户和管理员之间必须有一个投标系统.添加时的订单价格可能是50美元.客户可以出价40美元,然后管理员可以就此出价或出价其他价格.然后客户可以选择接受或尝试其他价格,依此类推.这是主意.协商价格后,服务提供商和管理员之间必须执行相同的过程.

因此,我需要一个表,用于在客户端与admin之间以及admin和服务提供者之间存储出价,并且还需要存储出价历史记录而不是最新出价.

用户表

+----+--------+---------------------------------+-------------+
| id |  name  |          userable_type          | userable_id |
+----+--------+---------------------------------+-------------+
|  1 | George | AppHttpModelsClient          |           2 |
|  2 | John   | AppHttpModelsServiceProvider |           3 |
|  3 | Ben    | AppHttpModelsAdmin           |           4 |
+----+--------+---------------------------------+-------------+

客户端表/管理表/服务提供者表现在看起来相同

+----+--+
| id |  |
+----+--+
|  1 |  |
|  2 |  |
|  3 |  |
+----+--+

现在,如果我要制作出价表,则不想为服务提供商,管理员和客户分别创建新表.我更喜欢使它成为唯一的一个.

让我们举个例子:

+----+----------+---------+-------+
| id | order_id | user_id | price |
+----+----------+---------+-------+
|  1 |        2 |       1 |    50 |
|  1 |        2 |       1 |    60 |
|  1 |        2 |       3 |    70 |
+----+----------+---------+-------+

现在,我如何知道对管理员的出价,对客户的出价和对服务提供商的出价?基本上,我要获取的是order_id 2的所有客户出价和管理员出价,以及order_id 2的提供者出价和管理员出价.我已尽力而为,但仍无法解决.也许是更好的版本,您可以建议我使用.

谢谢.

最佳答案 您可以通过加入获得出价

$bids = DB::table('bids')
        ->join('users','users.id','=','bids.user_id')
        ->select('bids.*','users.userable_type')
        ->where('bids.order_id',$order_id)
        ->whereIn('users.userable_type',['AppHttpModelsClient','AppHttpModelsAdmin'])
        ->get();

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读