我正在建立一个约会系统,并且在mysql结构和模型结构方面存在一些问题。用户将至少有两种:客户和提供者。客户将与该工作的可用提供者预约该选定的工作。供应商将能够添加他们自己以选择可供客户使用的工作。最后,将进行约会,包括开始日期,结束日期以及对customer_id和provider_id(来自表用户)和work_id(来自表工作)的外键。因此,在约会表中,我将向同一实体(用户)提供2个FK,但一个将成为客户,一个将成为提供商。 哪些映射应在约会类中具有用户和客户字段,而在用户类中具有字段约会?我将通过users_role表中的角色来区分用户。 甚至可以只为用户提供一个公用表吗?
这是mysql模式的链接:https://i.imgur.com/OdKfVdh.png
Appointment.class
import subprocess
import re
from pandas import parser
try:
filename='mydata.tsv'
df=pd.read_csv(filename,sep='\t',header=0, skiprows=[1,2,3])
except (parser.CParserError) as detail:
print detail
err=re.findall(r'\b\d+\b', detail) #will give all the numbers ['22', '329867', '24'] line number is at index 1
line=subprocess.check_output("sed -n %s %s" %(str(err[1])+'p',filename),stderr=subprocess.STDOUT,shell=True) # shell command 'sed -n 2p filename' for printing line 2 of filename
print 'Bad line'
print line # to see line
User.class:
@Entity
@Table(name="appointments")
public class Appointment extends BaseEntity {
@Column(name="start")
@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm")
private LocalDateTime start;
@DateTimeFormat(pattern="yyyy-MM-dd'T'hh:mm")
@Column(name="end")
private LocalDateTime end;
@ManyToOne
@JoinColumn(name="work_id")
private Work work;
??????
private User customer;
??????
private User provider;
}
答案 0 :(得分:0)
您只需要指定列名:
@OneToMany
@JoinColumn(name = "first_column")
private User customer;
@OneToMany
@JoinColumn(name = "second_column")
private User user;
关于父母的补贴是指孩子:
@ManyToOne(mappedBy = "user")
private List<Appointment> appointmentsByUser;
@ManyToOne(mappedBy = "customer")
private List<Appointment> appointmentsByProvider;