Мой вопрос заключается в том, как вставить данные в таблицу соединений (user_book), не вставляя двойную запись в основную таблицу (книгу).Избегание дубликатов Записи базы данных в коде источника воспламенения
Главным образом мы рассмотрим таблицу ниже дерева
id Users id Books id Users Books
1 Sam 1 B1 1 1 1
2 Ben 2 B2 2 1 3
3 Mike 3 B3 3 3 3
4 2 2
Но проблема в том, когда я вставить новую книгу (бывший Майк, как B3), которые существуют в таблице Books. Дубликат будет отображаться в таблице книг и выше таблица будет как:
id Users id Books id Users Books
1 Sam 1 B1 1 1 1
2 Ben 2 B2 2 1 3
3 Mike 3 B3 3 3 4
4 B3 4 2 2
Это имеет смысл теперь, что я пытаюсь решить? Или, может быть, у меня не может быть уникального списка книг?
, если я собираюсь вставить Учитывая базу данных пользователей и книги пользователей < ---> книги связаны users_books мы должны убедиться, что, когда мы вставляем книгу запись в БД это не дублировать. Кроме того, если книга существует, будет вставлено отношение, а не книжная запись. Как это можно сделать? Один подход заключается сказать
$m=new Book();
$m->where('id_book', $data['user_booklist'][$i]['id'])->get();
$u = new User();
$u -> where('id_user', $data['user_profile']['id'])-> get();
if(!$u->where_related($m))
{
$m -> name = $data['user_booklist'][$i]['name'];
$m -> id_book = $data['user_booklist'][$i]['id'];
$m -> save($u);
}
если (книга-> существует) в «книгах» таблица затем проверить связь и узнать, есть ли связь между пользователями и книгами, и если есть, то нет вставьте его. Кроме того, мне нужно изменить любую вещь в структуре mysql db, чтобы этого избежать.
Вышеупомянутый код не работает, но должен дать представление о том, о чем я говорю.
Update:
Таким образом, если два пользователя понравился ту же книгу, я просто хочу, чтобы вставить запись (книга) в таблицу Join (users_books) и при этом не в создании новой записи в таблице. Использование уникального sql-тега не сработало, так как оно хранит уникальный список, но не позволяет вставить несколько отношений в таблицу join users_books.
Почему этот код не работает? Выглядит правильно. – Zombaya