这是更接近/最佳实践的问题,不是一个具体的技术问题,所以我来找你的一些指导。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问题。搜索关于这个话题,有很多关于它的问题:) –