我有两个实体,它们使用关系表(manymany)相互关联,然后我有一个价格表,其中包含医院服务的定价信息。如果与该服务相关联的医院不同,则此表对同一服务可以有不同的定价。
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
现在我的问题是我应该重写hospital_id vs service_id service_pricing表中的信息?这不是数据的重复吗?我已经在Hospital_service表中有了这些信息。
(同样是我与service_duration表的问题)
我想做什么,我决定在关系表(hospital_service)中添加一个ID列,并将其用作service_pricing表中的外键。
在我的情况下这是一个足够好的解决方案吗?我使用的是Laravel的Eloquent ORM,那么我怎么说"获取医院2的服务7的定价"呢?
编辑:在service_pricing和service_duration表中添加了额外的信息,pricing/duration取决于weight_range_id和它是否为LH/SH.
我应该重写hospital_id vs service_id信息service_pricing表吗?
如果你想的话可以。无论哪种方式都可以,只是看哪种方式最方便。如果键是一个字段而不是两个,那么连接service_pricing
和service_duration
表会更容易一些。
这不是数据的重复吗?我已经有这个信息了Hospital_service表。
不,它不被认为是多余的,因为它是连接记录的键值。您必须在外键中也有该值才能进行连接。
我使用的是Laravel的Eloquent ORM,所以我怎么说"get"呢服务定价7医院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
我会使用这样的表:
hospitals:
id
name
services:
id
name
hospital_service:
hospital_id
service_id
price
duration
数据无重复。Hospital_service是用于连接服务和医院的多对多表。
Hospitals
ID:NAME
1:hostiptal a
2:hospital b
Services
ID:NAME
1:service a
2:service b
hospital_service
HOSPITAL_ID:SERVICE_ID:DURATION(minutes):PRICE(euro)
1:1:30:100
1:1:60:180
1:2:180:500
服务"Service a"30分钟收费100,60分钟收费180。
编辑:你有更多的选择,其中两个是:1.您可以插入更多的服务,例如
service a-lh
service a-sh
service b-lh
service b-sh
,然后是每个服务的价格或:
2。
HOSPITAL_ID:SERVICE_ID:DURATION(minutes):PRICE(euro):SERVICE TYPE
1:1:30:100:lh
1:1:60:120:sh
1:2:60:180:lh
2:2:180:500:lh