2013-07-31 3 views
0

Я создал одну таблицу в моей базе Magento, эта таблица не имеет связей ни с одной из таблиц magento. Я создал форму, которая позволяет пользователю помещать информацию в эту таблицу.Самый эффективный способ сравнения значения формы и значения базы данных

В этой таблице есть столбец, который должен содержать уникальное значение, я установил этот столбец, чтобы разрешить ему уникальные значения.

То, что я сейчас делаю, это просто передать данные, не проверяя, является ли это значение уникальным и получает сообщение «Нарушение ограничения целостности», показанное на моем экране.

Что я хочу сделать, прежде чем пытаться передать данные в эту таблицу, проверьте, что значение, которое пользователь пытается ввести, еще не существует в таблице, и если это так, передайте их на соответствующую страницу или можно ли использовать это «нарушение ограничения целостности», чтобы затем передать пользователя на соответствующую страницу?

Я знаю, как сравнивать значения с использованием raw php и mysql-кода, но после чтения на Magento я вижу, что использование запросов sql обескуражено, поэтому я решил создать массив, который будет содержать все строки из этого столбца, а затем сравнить этот массив с пользователи вводят данные, но это кажется большой потерей ресурсов, особенно по мере роста базы данных.

Как был бы лучший способ достичь этого?

Если это так, что запрос sql был бы приемлемым для запуска непосредственно в таблице, где я просматриваю код, чтобы найти эту функцию, которую мне нужно использовать?

+0

Если вы не полагаетесь на модели и модель ресурсов, использование прямых запросов sql не может быть реальной проблемой и может сэкономить ваше время. – dagfr

ответ

0

На мой взгляд, могут быть следующие возможные решения:

  1. Либо использовать хранимую процедуру в базе данных, чтобы проверить, существует ли значение в таблице. Если он просто возвращает сообщение в ловушку и соответствующее действие, которое должно выполняться в интерфейсе.
  2. используйте конструкцию хэшмапа (набор карт), которая сократит время обработки до минимума в переднем конце.

Я надеюсь, что это поможет.

+0

Спасибо за помощь. Это определенно дает мне кое-что, о чем можно подумать и заглядывать, поскольку я не знаю, как их использовать. Я надеялся, что это будет немного более основательно, но я начну исследовать – tony09uk

Смежные вопросы