Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Список несовместимостей и зависимостей 
:(
    Опции темы
Keeper89
Дата 9.2.2010, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: нет
Всего: 58



Доброго времени суток.

Имеется таблица деталей (2 атрибута), из которых комплектуется товар:
  • ID
  • Name
Кроме этого каждая деталь может исключать выбор другой детали (или нескольких), а также может зависеть от выбора другой детали (или нескольких) -> нужны списки несовместимости и зависимости.

Вопрос в следующем: правильно ли будет организовать эти таблицы как таблицы с 2 атрибутами ID (т.е. запись пар несовместимостей/зависимостей) или есть вариант лучше?

Это сообщение отредактировал(а) Keeper89 - 9.2.2010, 20:18


--------------------
PM MAIL WWW   Вверх
Fortop
Дата 9.2.2010, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(Keeper89 @  9.2.2010,  19:18 Найти цитируемый пост)
есть вариант лучше?

Вряд ли.

Но задачка интересная. Где такое потребовалось?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Keeper89
Дата 9.2.2010, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: нет
Всего: 58



Цитата(Fortop @  9.2.2010,  20:39 Найти цитируемый пост)
Но задачка интересная. Где такое потребовалось? 

Диплом )


--------------------
PM MAIL WWW   Вверх
Fortop
Дата 9.2.2010, 22:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Понятно.

Ну, мне на вскидку не приходит идея лучше чем ты предложил.
Т.е. 2 таблицы для зависимостей и для исключений и джойны на них при выборках.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Akina
Дата 9.2.2010, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Я бы делал единую таблицу (не)совместимостей... потому что таблица должна для эффективной работы быть направленной.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Frees
Дата 10.2.2010, 07:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 2
Всего: 54



Цитата(Keeper89 @  9.2.2010,  23:18 Найти цитируемый пост)
 правильно ли будет организовать эти таблицы как таблицы с 2 атрибутами ID

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


Это сообщение отредактировал(а) Frees - 10.2.2010, 07:34


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Akina
Дата 10.2.2010, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Цитата(Frees @  10.2.2010,  08:31 Найти цитируемый пост)
зависимость и несовместимость это взаимоисключающие связки

Не факт... например, если наличие А требует наличия Б, это не значит, что наличие Б требует наличия А или что отсутствие А требует отсутствия Б.Я не зря сказал про направленность списка.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Zloxa
Дата 10.2.2010, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 11
Всего: 161



А я вот не понял смысла процесса "выбор", который, как мне кажется подразумевает некую иттерационность.

Если бы я решал задачу так как я ее понял, я бы сущность товар расширил бы еще аттрибутом "группа", и создал еще одну сущность- которая определяла бы отношение группы к группе и имела бы аттрибутом признаки "совместима по И", "совместима по ИЛИ", "Не совместима по И", "не совместима по ИЛИ".

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


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Frees
Дата 10.2.2010, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 2
Всего: 54



Цитата(Akina @  10.2.2010,  14:11 Найти цитируемый пост)
Не факт... например, 

я имел в виду что 

наличие А требует наличия Б, а Б требует отсутствия А... -противоречие два взаимоисключающих правила(зависемости)


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
Akina
Дата 10.2.2010, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 13
Всего: 454



Цитата(Frees @  10.2.2010,  13:22 Найти цитируемый пост)
наличие А требует наличия Б, а Б требует отсутствия А... -противоречие два взаимоисключающих правила(зависемости) 

Нет тут никакого противоречия. 
Если наличие А требует наличие Б, то отсутствие Б требует отсутствия А. 
А наличие Б ни о чём не говорит.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Fortop
Дата 10.2.2010, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Цитата(Frees @  10.2.2010,  11:22 Найти цитируемый пост)
я имел в виду что 

наличие А требует наличия Б, а Б требует отсутствия А... -противоречие два взаимоисключающих правила(зависемости) 

Что это меняет?

В любом случае будет ссылающийся и тот на кого ссылаются.
А поскольку требуется зависимость и исключение, то JOINов таки будет два (IN & NOT IN). Хоть на 1 общую таблицу, хоть на две разных.

Если в результате мы получаем пустое множество - то элемент не может быть добавлен.

Akina, ты не мог бы подробнее раскрыть тему о направленности? я не могу понять на что это влияет и как.


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Keeper89
Дата 10.2.2010, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: нет
Всего: 58



Akina все понял правильно. Если, например, мы выбираем делать А, от этого может не зависеть выбор детали Б, но исключать выбор детали В. А выбор детали В может зависеть от выбора Б и т.п.
Цитата(Akina @  9.2.2010,  23:58 Найти цитируемый пост)
Я бы делал единую таблицу (не)совместимостей... потому что таблица должна для эффективной работы быть направленной. 

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

Это сообщение отредактировал(а) Keeper89 - 10.2.2010, 13:48


--------------------
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Общие вопросы по базам данных"
LSD
Zloxa

Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:

  • вопросам по СУБД для которых нет отдельных подфорумов
  • вопросам которые затрагивают несколько разных СУБД (например проблема выбора)
  • инструменты для работы с СУБД
  • вопросы проектирования БД
  • теоретически вопросы о СУБД

Данный форум не предназначен для:

  • вопросов о поиске разлиных БД (если не понимаете чем БД отличается от СУБД то: а) вам не сюда; б) Google в помощь)
  • обсуждения проблем с доступом к СУБД из различных ЯП (для этого есть соответсвующие форумы по каждому ЯП)
  • обсуждения проблем с написание SQL запросов, для этого есть форум Составление SQL-запросов
  • просьб о написании курсовой, реферата и т.п., для этого есть Центр помощи или фриланс биржа
  • объявлений о найме специалистов, для этого есть раздел Объявления о найме специалистов

Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение. ;)


Полезные советы:

При написании сообщения постарайтесь дать теме максимально понятное название. В теме максимально подробно опишите проблему. Если применимо укажите: название базы данных и версии (MySQL 4.1, MS SQL Server 2000 и т.п.); используемых язык программирования; способа доступа (ADO, BDE и т.д.); сообщения об ошибках.

Для вставки кода используйте теги [code=sql] [/code].

Литературу по базам данных можно поискать здесь.

Действия модераторов можно обсудить здесь.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | СУБД, общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0579 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.