我想将此对象保存到db,但我不知道该怎么做..
public class Board {
private String name;
private Sticker sticker;
Board(String name, Sticker sticker){
this.name=name;
this.sticker = sticker;
}
}
public interface Sticker {
public void doSomething();
}
public class FreeSticker implements Sticker {
@Override
public void doSomething(){
System.out.println("I'm freeSticker");
}
}
public class ProSticker implements Sticker {
@Override
public void doSomething() {
System.out.println("I'm proSticker");
}
}
现在我想用set name和一些Sticker(比如FreeSticker)将我的新Board对象保存到Database。怎么样? name很简单,因为在每个db中我们都有String类型,但是Sticker呢?我知道,我可以为FreeSticker和ProSticker创建另一个表,但是它很复杂,例如我们有2个以上的Sticker实现..我不是要求超级解决方案,但请给我一些教程的链接它,因为我无法找到任何相关信息。谢谢:))
答案 0 :(得分:0)
您的表应包含每个州值的列。在你的情况下有两个,加上通常很好的包括一个唯一的ID字段作为主键。那么,在PostgreSQL中......
CREATE TABLE board (
id SERIAL NOT NULL,
name text,
sticker boolean);
或者,如果您计划/期望有多个贴纸。
CREATE TABLE sticker (
id SERIAL NOT NULL,
name text);
CREATE TABLE board (
id SERIAL NOT NULL,
name text,
sticker int REFERENCES sticker(id) NOT NULL);