Является ли корректной данная таблица, характеризующая связи «Многое-Ко-Многим»?
Доброго времени суток!
Я новичок в проектировании БД да и в целом, поэтому не обессудьте.
Работая над проектом заметил таблицу, которая создана для связи "Много-Ко-Многим". Имеет она такой вид:
items_categories:
id | item_type | item_id | category_id | delta
Собственно она в себе хранит связи: (товары, свойства товаров, группы (?) к категориям ). Тоесть в item_type хранится тип предмета. Что такое дельта я еще не понял...
Так вот, нормально ли использование такой таблицы? Если нет, то влияет ли на скорость запросов подобная таблица?
Для связи двух таблиц по принципу многие ко многим действительно используется третья таблица. Вот только содержать она должна всего два поля - id1 и id2, поскольку предназначена только для отображения отношений между двумя сущностями, и не более того. Свой id у строк в такой таблице не нужен, поскольку у вас не будет двух одинаковых записей.
soulness: Я переформулирую :) Сильно медленнее будет использование третей таблицы в качестве отдельной сущности?
К тому же моя таблица все равно не является корректной, так как должна характеризовать собой связи только между двумя сущностями. А в моем случае получается аж 3 свзяи products > categories, features > categories, groups > categories
Игорь Катков: сущность существует на уровне абстракции) а скл пофигу как выглядит ваша таблица. он и не знает что эта таблица является реализацией М:М)