Я лично кодирую метод в моей модели, чтобы проверить, есть ли дублирующаяся запись, и вызываю этот метод непосредственно перед вызовом метода для добавления данных в базу данных.
Например
class MyModel extends CI_Model
{
public function isInDatabase($data)
{
// Run a SELECT query with $data to search if there is a record with that $data
if($data_exists)
return true;
else
return false;
}
public function insertInDatabase($data)
{
// Run an INSERT query with $data
}
}
, затем в моем контроллере я проверяю наличие дублируемой записи перед добавлением $data
class MyController extends CI_Controller
{
public function add()
{
$data = // Some code to retrive data from user input
if($this->mymodel->isInDatabase($data))
$this->mymodel->insertInDatabase($data)
else
// Do nothing or show an error page.
}
}