我在Magento数据库中创建了一个表,该表与任何一个Magento表都没有连接。我创建了一个表单,允许用户将信息放入该表中。
在该表中,有一列必须包含唯一值,我已将该列设置为只允许其中包含唯一值
我目前所做的只是简单地传入数据,而不检查值是否唯一,并在屏幕上显示"Integrity constraint violation"消息。
在尝试将数据传递到该表之前,我想做的是检查用户试图输入的值是否已经存在于该表中,如果已经存在,则将其传递到相关页面,或者是否可以使用"完整性约束冲突"将用户传递到相关页面?
我知道如何使用原始php和mysql代码比较值,但在阅读了Magento之后,我发现不鼓励使用sql查询,所以我考虑创建一个数组,它将保存该列中的所有行,然后将该数组与用户输入的数据进行比较,但这似乎是对资源的巨大浪费,尤其是随着数据库的增长。
实现这一目标的最佳方式是什么?
如果在这种情况下,sql查询可以直接在表上运行,那么我应该在代码中的哪里查找需要使用的函数?
在我看来,以下可能是解决方案:
- 请使用数据库中的存储过程来检查表中是否存在该值。如果它只是返回一条要捕获的消息以及要在前端执行的相应动作
- 使用hashmap构造(map集合),它将在前端将处理时间缩短到最小
我希望这能有所帮助。