我有两个使用关系表相关的实体(ManyToMany)然后我有一个定价表,其中包含医院服务的定价信息。如果与服务相关联的医院不同,则此表可以对同一服务具有不同的定价。
[button setImage:[UIImage imageNamed:@"pressed.png"] forState:UIControlStateSelected | UIControlStateHighlighted];
现在我的问题是我应该重写service_pricing表中的hospital_id vs 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。
答案 0 :(得分:0)
我会使用像:
这样的表格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
服务"服务"费用为100分钟,30分钟,180分钟,60分钟。
编辑:
您有更多选择,其中两个是: 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
答案 1 :(得分:0)
我是否应该重写医院中的hospital_id与service_id信息 service_pricing表?
如果你愿意,你可以。无论哪种方式都有效,这只是最方便的问题。如果密钥是一个字段而不是两个字段,那么加入service_pricing
和service_duration
表会更容易一些。
这不是重复数据吗?我已经掌握了这些信息 Hospital_service表。
不,它不被认为是多余的,因为它是连接记录的关键值。您还必须在外键中使用该值才能建立连接。
我正在使用Laravel的Eloquent ORM,所以我怎么说“得到 医院服务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