2014-11-05 66 views
-1

我正在開發Spring-MVC項目。我使用hibernate作爲ORM映射工具。這個項目讓'用戶'在筆記上執行CRUD操作。項目窗口被稱爲「畫布」,用戶可以有多個畫布。 作爲設計的角度來看,在前端加載canvas的'名稱'總是很好的,我可以使用canvasid來執行任務。我只是想知道如何在兩者之間建立並保持嚴格的一對一關係。 請注意,有多個用戶,所以我與人物和筆記有一對多的關係,所以有些用戶會有相同的工作區。我在下面發佈'Note'數據庫的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

如果Canvas是動態的,例如,由用戶創建,您必須將其建模爲一個實體,並保存該ID和名稱。這當然假定有一個新表和一個外鍵約束。

如果Canvas是一個可枚舉的概念,那麼您可以在代碼中使用枚舉,並將一個序號存儲在數據庫中。在這種情況下,不需要新的表格或canvasname列

+0

謝謝,畫布是由用戶創建的,但我不想通過創建實體和維護約束來使其更加複雜。我認爲會有類似Java中的Map我可以使用的東西。 – 2014-11-05 09:46:34

+0

如果你想讓它在記憶體外持續存在,你必須創建一個實體 – 2014-11-05 09:52:35

+0

好的。我去做。謝謝。 – 2014-11-05 09:54:39