SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 11.02.2012 10:43:38

Hedgehog
Участник
Зарегистрирован: 11.02.2012
Сообщений: 3

сложные данные

Здравствуйте!
Передо мной стоит задача, которую мне никак не удаётся решить -- может, кто-то подскажет хотя бы, в каком направлении копать.
Есть список неких объектов с айдишниками. У каждого объекта есть набор свойств. Свойства двух типов -- либо числа, либо строки. Набор свойств для каждого объекта свой -- т.е. один объект, например, характеризуется цветом и длиной, а другой -- цветом и глубиной, 3-й только шириной, и т.д. Нужно всё это как-то хранить в базе таким образом, чтобы:

1. можно было добавлять-убирать свойства,
2. можно было сравнивать объекты по общему свойству, если такое есть.

Понятно, что самое лёгкое решение -- таблица, где в столбцах свойства, а в строках -- айдишники объектов. Но тогда добавление-удаление свойств -- это добавление-удаление столбцов в очень немаленькой таблице, а это совсем не хорошо.

Подскажут что-нибудь знатоки?

Неактивен

 

#2 11.02.2012 11:12:17

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: сложные данные

таблица объктов
таблица свойств
таблица связи (id объекта, id свойства, значение)

Неактивен

 

#3 11.02.2012 12:23:02

Hedgehog
Участник
Зарегистрирован: 11.02.2012
Сообщений: 3

Re: сложные данные

Да, это первое, что приходит в голову.
Но свойства должны добавляться-удаляться. Значит, в таблице связи должны удаляться-добавляться столбцы. При большом к-ве записей это плохо. Именно этого и хочется избежать.
Кроме того, свойств больше, чем может быть столбцов в таблице (я понимаю, что можно разбить на несколько).
Но главное -- как добавление-удаление свойств осуществлять без удаления-добавления столбцов.

Неактивен

 

#4 11.02.2012 12:23:58

Hedgehog
Участник
Зарегистрирован: 11.02.2012
Сообщений: 3

Re: сложные данные

Ааааа!
Понял!
Спасибо!!!!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson