gpt4 book ai didi

php - 在其他表中使用关系表的 ID

转载 作者:搜寻专家 更新时间:2023-10-30 20:53:29 25 4
gpt4 key购买 nike

我有 2 个实体,它们使用关系表 (ManyToMany) 关联,然后我有一个定价表,其中包含医院服务的定价信息。如果链接到服务的医院不同,则此表可能对同一服务有不同的定价。

hospitals:
id name

services:
id name

hospital_service:
hospital_id service_id

service_pricing:
id hospital_id service_id weight_range_id LH_price SH_price

service_duration:
id hospital_id service_id weight_range_id LH_duration SH_duration

现在我的问题是我是否应该重写 service_pricing 表中的 hospital_id 与 service_id 信息?这不是数据重复吗?我已经在 Hospital_service 表中有了这些信息。

(我对 service_duration 表也有同样的问题)

我想做的,我已决定向关系表 (hospital_service) 添加一个 ID 列,我将使用它作为 service_pricing 表中的外键。

就我而言,这是一个足够好的解决方案吗?我正在为此使用 Laravel 的 Eloquent ORM,那么我怎么说“获取医院 2 的服务 7 的定价”?

编辑:向 service_pricing 和 service_duration 表添加了附加信息,定价/持续时间取决于 weight_range_id 及其是否为 LH/SH。

最佳答案

should I be rewriting the hospital_id vs service_id information in the service_pricing table?

如果你愿意,你可以。无论哪种方式都有效,这只是最方便的问题。如果键是一个字段而不是两个字段,则加入 service_pricingservice_duration 表会更容易一些。

Isn't this repetition of data? I already have this information in Hospital_service table.

不,它不被认为是多余的,因为它是连接记录的键值。您还必须在外键中也有该值才能建立连接。

I am using Laravel's Eloquent ORM for this, so how do I say "get pricing of service 7 of hospital 2" ?

我不熟悉那个框架,而且 laravel.com 目前似乎已关闭。其 SQL 类似于:

select
weight_range_id, LH_price, SH_price
from
service_pricing
where
hospital_id = 2
and service_id = 7

如果您决定在 hospital_service 表中添加另一个 id,则需要为该查询加入该表:

select
p.weight_range_id, p.LH_price, p.SH_price
from
service_pricing p
inner join hospital_service hs on hs.is = p.hospical_service_id
where
hs.hospital_id = 2
and hs.service_id = 7

关于php - 在其他表中使用关系表的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33277220/

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