2015-05-10 2 views
0

Это проблема, с которой я столкнулся некоторое время, и не знаю, как наилучшим образом ее решить. Его, вероятно, легче объяснить с помощью примера.MySQL Несколько таблиц или несколько значений для одного поля?

У меня есть много коллекций и много предметов. Некоторые предметы могут принадлежать одной или нескольким коллекциям или вообще не присутствовать. Коллекции должны иметь хотя бы один элемент, но нет ограничений на количество предметов, которые он может иметь.

Как хранить эту информацию в базе данных MySQL/что является наиболее эффективным способом ее выполнения?

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

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

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

Есть ли другой способ сделать это?

Это будет запрашиваться с использованием php-сайта, если это имеет какое-то значение для структуры базы данных.

ответ

2

Я думаю, вы должны ..

Создать collection table со всеми коллекциями, в item table всех элементов, и collection-item map table, который будет иметь id (первичный ключ), collection_id (внешний ключ к таблице сбора), item_id (внешний ключ к таблице товаров). Эта таблица будет представлять связь между коллекцией и элементом. Он может иметь любое количество элементов коллекции.

Надеюсь, это поможет.

+0

Отлично, это звучит идеально. Спасибо за быстрый ответ. – jakecfc1992

+0

Если он отвечает на ваш вопрос, отметьте его принятым решением. –

+0

Затем вы можете захотеть взглянуть на объединения в SQL, так как тогда вы можете объединить две таблицы. –

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