![]() |
|
Модераторы: LSD |
![]()
|
|
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
Доброго времени суток.
Имеется таблица деталей (2 атрибута), из которых комплектуется товар:
Вопрос в следующем: правильно ли будет организовать эти таблицы как таблицы с 2 атрибутами ID (т.е. запись пар несовместимостей/зависимостей) или есть вариант лучше? Это сообщение отредактировал(а) Keeper89 - 9.2.2010, 20:18 |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Вряд ли. Но задачка интересная. Где такое потребовалось? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
||||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Понятно.
Ну, мне на вскидку не приходит идея лучше чем ты предложил. Т.е. 2 таблицы для зависимостей и для исключений и джойны на них при выборках. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Я бы делал единую таблицу (не)совместимостей... потому что таблица должна для эффективной работы быть направленной.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 2 Всего: 54 |
правильнее не таблицы а таблицу. как я понял зависимость и несовместимость это взаимоисключающие связки, можно по этим двум ID сделать уникальный ключ и добавить признак совместимость/несовместимость. Это сообщение отредактировал(а) Frees - 10.2.2010, 07:34 -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Не факт... например, если наличие А требует наличия Б, это не значит, что наличие Б требует наличия А или что отсутствие А требует отсутствия Б.Я не зря сказал про направленность списка. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
А я вот не понял смысла процесса "выбор", который, как мне кажется подразумевает некую иттерационность.
Если бы я решал задачу так как я ее понял, я бы сущность товар расширил бы еще аттрибутом "группа", и создал еще одну сущность- которая определяла бы отношение группы к группе и имела бы аттрибутом признаки "совместима по И", "совместима по ИЛИ", "Не совместима по И", "не совместима по ИЛИ". И это не конец. Свою фантазию я могу еще и еще разивать. Очень жаль что ТС определил столь расплывчатые границы своей задачи. Излишняя инвариантность ее решения в том виде, в каком она сформулирована, делает бессмысленными какие бы то ни было дискуссии. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Frees |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2233 Регистрация: 2.12.2005 Где: Екатеринбург Репутация: 2 Всего: 54 |
я имел в виду что наличие А требует наличия Б, а Б требует отсутствия А... -противоречие два взаимоисключающих правила(зависемости) -------------------- Кольцов Виктор Владимирович |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Нет тут никакого противоречия. Если наличие А требует наличие Б, то отсутствие Б требует отсутствия А. А наличие Б ни о чём не говорит. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: нет Всего: 42 |
Что это меняет? В любом случае будет ссылающийся и тот на кого ссылаются. А поскольку требуется зависимость и исключение, то JOINов таки будет два (IN & NOT IN). Хоть на 1 общую таблицу, хоть на две разных. Если в результате мы получаем пустое множество - то элемент не может быть добавлен. Akina, ты не мог бы подробнее раскрыть тему о направленности? я не могу понять на что это влияет и как. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Keeper89 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2580 Регистрация: 26.2.2009 Репутация: нет Всего: 58 |
Akina все понял правильно. Если, например, мы выбираем делать А, от этого может не зависеть выбор детали Б, но исключать выбор детали В. А выбор детали В может зависеть от выбора Б и т.п.
Идея направленной таблицы у меня возникала. Тогда, наверное, стоит упорядочить возможные свойства по возможности вложенности друг в друга? И как все это свести в одну таблицу, ведь совместимость это не всегда зависимость... Это сообщение отредактировал(а) Keeper89 - 10.2.2010, 13:48 |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |