gpt4 book ai didi

php - 为需要批准的每种类型的关系定义一个表与定义一个通用表以适应所有关系

转载 作者:行者123 更新时间:2023-11-28 23:53:16 26 4
gpt4 key购买 nike

我正在为 mysql 5.5 中的应用程序设计一个数据库,该数据库在用户表和业务表之间具有多对多关系,如下所示:

user
----
user_id (PK)

handle

email

password

password_salt

created_at

updated_at


business
--------
business_id (PK)

business_name

website

created_at

updated_at

updated_by

为此我定义了以下桥接表

user_business_relationship
--------------------------
user_id (FK) (PF)

business_id (FK) (PF)

但是,在将用户与企业相关联并将关系记录在 user_business_relationship 表中之前,企业需要获得批准

因此,我定义了如下的approver表

(option 1)
--------

user_business_relationship_approver
-----------------------------------
user_id (FK) (PF)

business_id (FK) (PF)

approver_id (FK) (PF)

status |requested|approved|rejected|

updated_at

我的问题如下:

我知道当我扩展我的数据库设计时,我会遇到其他类型的情况,在这些情况下我需要使用需要另一个表的相同审批工作流程,例如:

user_promotions_relationship_approver
-------------------------------------

and so on

那么,您会建议我为每种类型的关系定义单独的批准者表,还是只为需要批准的任何类型的关系定义一个通用批准者表更好?

(option 2)
----------

relationship_approver
---------------------
requestor_id |user_id| (PK) (PF)

request_id |business_id|promotion_id|etc| (PK) (PF)

approver_id (PF) (PF)

request_type

status

updated_at

updated_by

我还将感谢有关我当前设计的任何其他反馈。谢谢

最佳答案

我会在主关系表中简单地定义一个附加状态字段:

user_business_relationship

user_id (FK) (PF)
business_id (FK) (PF)
status |requested|approved|rejected|

如果这样做,您不需要任何额外的表来处理批准。您还可以根据需要添加任意数量的额外字段,以标识请求者、批准者、请求日期、批准日期等。

关于php - 为需要批准的每种类型的关系定义一个表与定义一个通用表以适应所有关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32231651/

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