我有三张表(gym_station: 健身器械 gym_circuit: 训练计划
gym_station_circuit多对多的映射表, 但是多了一项数据:健身器械在训练计划中的使用顺序)
CREATE TABLE gym_station(
id serial PRIMARY KEY,
name varchar(30) NOT NULL UNIQUE,
description varchar(200),
);
CREATE TABLE gym_circuit(
id serial PRIMARY KEY,
gym_date date NOT NULL UNIQUE
);
CREATE TABLE gym_station_circuit(
station_id integer REFERENCES df_gym_station (id),
circuit_id integer REFERENCES df_gym_circuit (id),
do_order integer,
PRIMARY KEY (station_id, circuit_id)
);
如果使用hibernat tool自动生成
public class GymCircuit implements java.io.Serializable {
private int id;
private Date gymDate;
private Set dfGymStationCircuits;
...
}
public class GymStation implements java.io.Serializable {
private int id;
private String name;
private String description;
private Set dfGymStationCircuits;
...
}
public class GymStationCircuit implements java.io.Serializable {
private GymStationCircuitId id;
private GymCircuit dfGymCircuit;
private GymStation dfGymStation;
private Integer practiseOrder;
...
}
个人感觉这样的映射不是很好,如果你有类似经验,你是如何映射中间的表呢?
这个问题提醒到我在设计中间表存信息时的思路,就是把中间表独立出来存放两者关联的数据,不然以上这种设计是不太好的。