這是更接近/最佳實踐的問題,不是一個具體的技術問題,所以我來找你的一些指導。ZF2形式 - 插入和更新形成
我的問題圍繞着Zend框架2點的形式,特別是如果我要實現對insetting實體和更新的實體不同的形式。
概述一個簡化的用例。比方說,我在我的數據庫中有一個產品表。每個產品都有一個ID(product_id
),它是主鍵和名稱(name
)。假設我存儲的產品來自供應商,他們向我提供了一個我想用於數據庫中主鍵的唯一產品ID。
現在,假設我已經實施了一個product_fieldset
和一個product_form
,兩者都很好地工作。該表格允許我指定產品ID和名稱並將其存儲在數據庫中。但是,當用戶使用表單更新產品名稱而不是插入新產品時,我不希望他們能夠編輯產品ID,因爲這是我的數據庫主鍵。
我目前只能看到如何我可以通過實施2點的形式和2個字段集少一個字段(產品ID)呈現形式在更新場景。
你會如何處理這個問題?當使用服務經理/表單管理員撤回我的表單時,我無法理解我在表格中如何/在哪裏或哪些地方應用邏輯來處理這些情況。
:WQ
感謝Jurian,並且我同意,主鍵應該保留用於數據庫管理。在這種情況下,我嘗試使用SKU的唯一原因是因爲我的模型(並且有成千上萬個)定期從XML源更新。通過將SKU作爲主鍵,我可以使用MySql的「ON DUPLICATE KEY UPDATE」功能,從SKU爲唯一標識符的數千個項目的源中快速更新數據庫。如果沒有這個,對於每個項目,我首先必須搜索數據庫,看它是否存在,並根據結果做出更新決定。 – familymangreg
您可以使用'INSERT IGNORE'查詢或使用'INSERT [WHERE NOT EXISTS ]',否則。對於第一個(插入中的所有錯誤將被跳過,請注意!)您只需對SKU有一個唯一的限制,然後插入您的Feed中的所有數據。雖然,這是一個不同的話題,並沒有真正涉及到上述ZF2問題。搜索關於這個話題,有很多關於它的問題:) –