我正在开发一个Spring-MVC项目。我使用hibernate作为ORM映射工具。这个项目让用户'对笔记执行CRUD操作。项目窗口称为“画布”,用户可以拥有多个画布。 从设计的角度来看,加载名称'在前端的画布,我可以使用canvasid执行任务。我只是想知道如何创建和维护两者之间严格的一对一关联。 请注意,有多个用户,因此我与人和笔记有一对多的关系,因此一些用户将拥有相同的canvasid。我正在发布'注意'的SQL代码数据库如下。请看看。
CREATE TABLE note
(
noteid integer NOT NULL,
sectionid integer,
canvasid integer,
text character varying,
notecolor character varying,
noteheadline character varying,
id integer NOT NULL,
noteorder integer,
canvasname character varying,
CONSTRAINT noteid PRIMARY KEY (noteid),
CONSTRAINT user_note_fk FOREIGN KEY (id)
REFERENCES person (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
WITH (
OIDS=FALSE
);
ALTER TABLE note
OWNER TO postgres;
答案 0 :(得分:0)
如果Canvas是动态的,例如由用户创建,您必须像实体一样对其进行建模,并保存ID和名称。这当然假设一个新表和一个外键约束。
如果Canvas是一个可枚举的概念,则可以在代码中使用枚举,并在数据库中存储序号。在这种情况下,不需要新表或canvasname列