每列都是该人的公式。因此,一个人最多有8个公式,每个公式包含六个字符串。
这些对象由具有更多功能的对象(系统类)中的arraylist控制,比如在该数组内搜索,更新删除等...
我用于存储系统类和对象arraylist的技术是将数据序列化为文件。每次对象发生变化时,整个系统类都会被序列化。现在效率非常低,因为里面有3000人。该文件大约2 MB。
我需要摆脱这些保存数据的方式,我正在考虑使用数据库,以便更好地搜索并让其他客户端访问相同的数据。 我面临的问题是如何为每个人保存两个2d字符串数组。我应该创建一个包含8个字符串的数组,并将每个数组连接起来代表一个列吗?我应该在数据库中为多对多关系创建2个额外的表吗?
感谢。
顺便说一句;我计划使用JavaFX制作该程序的新版本。
这是我想要坚持的课程。
package ingresodefichas;
import java.io.*;
public class Ficha implements Serializable {
private String nombre;
private String apellido;
private String apellido2;
private int id;
private String tabla1[][];
private String tabla2[][];
public Ficha() {
this.setNombre("sin nombre");
this.setApellido("sin Apellido");
this.setTabla1(new String[6][4]);
this.setTabla2(new String[6][4]);
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellido() {
return apellido;
}
public void setApellido(String apellido) {
this.apellido = apellido;
}
public String getApellido2() {
return apellido2;
}
public void setApellido2(String apellido2) {
this.apellido2 = apellido2;
}
public String[][] getTabla1() {
return tabla1;
}
public void setTabla1(String[][] tabla1) {
this.tabla1 = tabla1;
}
public String[][] getTabla2() {
return tabla2;
}
public void setTabla2(String[][] tabla2) {
this.tabla2 = tabla2;
}
public String toString(){
return this.getId() + " - " + this.getNombre() + " " + this.getApellido() + " " + this.getApellido2();
}
}
答案 0 :(得分:3)
如果String[][]
表中的每个字符串都是唯一的,那么将数据分成另一个表没有任何好处,规范化尝试只会导致额外的不需要的逻辑,比如通过关系获取字符串并确保相关的字符串将被删除。
为了将整个表保存到数据库列,您可以像往常一样序列化/反序列化它们(字符串表)。
如果您提供一个问题,例如,两个人的序列化字符串表与公式,那么SO社区将能够给出更适合情况的答案。