0

我在我的 Magento 数据库中创建了一个表,该表与任何 magento 表都没有连接。我创建了一个表单,允许用户将信息放入该表中。

在该表中有一个必须包含唯一值的列,我已将该列设置为仅允许其中包含唯一值。

我目前正在做的只是将数据传入而不检查该值是否唯一并在我的屏幕上显示“违反完整性约束”消息。

我想要做的是在尝试将数据传递到该表之前检查用户尝试输入的值是否已存在于表中,如果存在,请将它们传递到相关页面,或者是否可以使用“违反完整性约束”将用户传递到相关页面?

我知道如何使用原始 php 和 mysql 代码比较值,但是在阅读 Magento 之后,我发现不鼓励使用 sql 查询,所以我考虑创建一个数组来保存该列中的所有行,然后将该数组与用户输入的数据进行比较,但这似乎是对资源的极大浪费,尤其是随着数据库的增长。

实现这一目标的最佳方法是什么?

如果这是可以接受直接在表上运行 sql 查询的情况,我在哪里查看代码以找到我需要使用的函数?

4

1 回答 1

0

在我看来,以下可能是可能的解决方案:

  1. 使用数据库中的存储过程来检查表中是否存在该值。如果它确实只是返回要捕获的消息以及要在前端执行的相应操作。
  2. 使用 hashmap 构造(地图集合),它将在前端将处理时间减少到最短。

我希望这会有所帮助。

于 2013-07-31T09:52:55.593 回答