java - 在 java 和 mysql 中命名和使用表和视图实体的最佳实践
问题描述
我正在JavaFX
使用 MVC 设计模式通过 开发软件。在 javaFX 中,为了将视图与数据同步,我使用属性字段(如StringProperty
、IntegerProperty
、 ...)和ObservableList
集合。我也在使用JPA
图书馆。考虑我tables
在 DB 中有两个,一个是城市,另一个是省。
province to city
有一对多relationship
。
第一个问题:
如果我使用来自城市和省的所有数据创建一个视图,该视图的名称应该是什么?应该是city_vm?或者我应该将表名更改为 citybase 和 Provincebase 或类似的东西?然后将视图名称更改为城市?
第二个问题:
我想将它们全部映射到真实实体中,我想映射表(城市和省表)以插入数据并使用视图实体进行选择和显示数据。另请注意,我为它们中的每一个都有一个单独的类(除了它们的实体类之外),以实现属性字段的优势(如StringProperty
, IntegerProperty
, .... )
这是 City 类(未映射,带有属性字段)
public class City {
private int city_id;
private StringProperty name;
private FloatProperty asl_ft;
private FloatProperty asl_mt;
private FloatProperty sdb_fh;
private FloatProperty sdb_cs;
private FloatProperty swd_fh;
private FloatProperty swd_cs;
private FloatProperty wdb_fh;
private FloatProperty wdb_cs;
private ProvinceEntity province;
public City(String name, Float asl_ft, Float asl_mt, Float sdb_fh,
Float sdb_cs, Float swd_fh,
Float swd_cs, Float wdb_fh, Float wdb_cs) {
this.name = new SimpleStringProperty(name);
this.asl_ft = new SimpleFloatProperty(asl_ft);
this.asl_mt = new SimpleFloatProperty(asl_mt);
this.sdb_fh = new SimpleFloatProperty(sdb_fh);
this.sdb_cs = new SimpleFloatProperty(sdb_cs);
this.swd_fh = new SimpleFloatProperty(swd_fh);
this.swd_cs = new SimpleFloatProperty(swd_cs);
this.wdb_fh = new SimpleFloatProperty(wdb_fh);
this.wdb_cs = new SimpleFloatProperty(wdb_cs);
}
public City() {
}
@Override
public String toString() {
return name.getValue().toString();
}
public StringProperty nameStringProperty() {
return name;
}
public FloatProperty asl_ft_FloatProperty() {
return asl_ft;
}
public FloatProperty asl_mt_FloatProperty() {
return asl_mt;
}
public FloatProperty sdb_fh_FloatProperty() {
return sdb_fh;
}
public FloatProperty sdb_cs_FloatProperty() {
return sdb_cs;
}
public FloatProperty swd_fh_FloatProperty() {
return swd_fh;
}
public FloatProperty swd_cs_FloatProperty() {
return swd_cs;
}
public FloatProperty wdb_fh_FloatProperty() {
return wdb_fh;
}
public FloatProperty wdb_cs_FloatProperty() {
return wdb_cs;
}
public String getName() {
return this.name.get();
}
public Float getAslFT() {
return asl_ft.get();
}
public Float getAslMT() {
return asl_mt.get();
}
public Float getSdbFH() {
return sdb_fh.get();
}
public Float getSdbCS() {
return sdb_cs.get();
}
public Float getSwdFH() {
return swd_fh.get();
}
public Float getSwdCS() {
return swd_cs.get();
}
public Float getWdbFH() {
return wdb_fh.get();
}
public Float getWdbCS() {
return wdb_cs.get();
}
public void setName(String name) {
this.name.set(name);
}
public void setAsl_ft(Float asl_ft) {
this.asl_ft.set(asl_ft);
}
public void setAsl_mt(Float asl_mt) {
this.asl_mt.set(asl_mt);
}
public void setSdb_fh(Float sdb_fh) {
this.sdb_fh.set(sdb_fh);
}
public void setSdb_cs(Float sdb_cs) {
this.sdb_cs.set(sdb_cs);
}
public void setSwd_fh(Float swd_fh) {
this.swd_fh.set(swd_fh);
}
public void setSwd_cs(Float swd_cs) {
this.swd_cs.set(swd_cs);
}
public void setWdb_fh(Float wdb_fh) {
this.wdb_fh.set(wdb_fh);
}
public void setWdb_cs(Float wdb_cs) {
this.wdb_cs.set(wdb_cs);
}
}
这里它的entity
类名为 CityEntity :
@Entity
@Table(name = "city")
public class CityEntity implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "city_id", nullable = false)
private int city_id;
@Column(name = "city_sn", nullable = false)
private String name;
@Column(name = "asl_ft", nullable = false)
private Float asl_ft;
@Column(name = "asl_mt", nullable = false)
private Float asl_mt;
@Column(name = "sdb_fh", nullable = false)
private Float sdb_fh;
@Column(name = "sdb_cs", nullable = false)
private Float sdb_cs;
@Column(name = "swb_fh", nullable = false)
private Float swb_fh;
@Column(name = "swb_cs", nullable = false)
private Float swb_cs;
@Column(name = "wdb_fh", nullable = false)
private Float wdb_fh;
@Column(name = "wdb_cs", nullable = false)
private Float wdb_cs;
@ManyToOne
@JoinColumn(name = "fk_province$city")
private ProvinceEntity province;
@Override
public String toString() {
return name;
}
public String getName() {
return this.name;
}
public Float getAslFT() {
return asl_ft;
}
public Float getAslMT() {
return asl_mt;
}
public Float getSdbFH() {
return sdb_fh;
}
public Float getSdbCS() {
return sdb_cs;
}
public Float getSwbFH() {
return swb_fh;
}
public Float getSwbCS() {
return swb_cs;
}
public Float getWdbFH() {
return wdb_fh;
}
public Float getWdbCS() {
return wdb_cs;
}
public void setName(String name) {
this.name = name;
}
public void setAsl_ft(Float asl_ft) {
this.asl_ft = asl_ft;
}
public void setAsl_mt(Float asl_mt) {
this.asl_mt = asl_mt;
}
public void setSdb_fh(Float sdb_fh) {
this.sdb_fh = sdb_fh;
}
public void setSdb_cs(Float sdb_cs) {
this.sdb_cs = sdb_cs;
}
public void setSwb_fh(Float swd_fh) {
this.swb_fh = swd_fh;
}
public void setSwb_cs(Float swd_cs) {
this.swb_cs = swd_cs;
}
public void setWdb_fh(Float wdb_fh) {
this.wdb_fh = wdb_fh;
}
public void setWdb_cs(Float wdb_cs) {
this.wdb_cs = wdb_cs;
}
}
从一开始,每个实体应该是三个类。一个使用属性字段的优势。(本例中为城市),一个用于查看选择数据(城市和省的组合),最后一个用于表格(本例中为城市表)
现在如果我想在我的项目中映射城市表和城市视图并使用它;Java
在和中命名约定的最佳做法是什么Mysql
?
解决方案
推荐阅读
- typescript - 如何将方法的签名复制到另一个方法?
- c - 我有一个函数读取文件,但它无法读取任何内容
- java - java中单向关闭时,为什么套接字会被视为关闭?
- javascript - 如何使用 js if 语句添加 html 代码?
- python - 在python中读取.Rds文件
- python - Django图像不存储
- python - 为什么我不断收到这种不一致的缩进错误?
- python - 在我提交表单并上传照片后,Django 数据库中没有任何内容可保存
- javascript - 如何使用 jquery 在 $each 循环中删除 cookie 对象数组
- sql-server - Django migrate app zero 不删除表