powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Альтернативные наборы столбцов в таблице
7 сообщений из 7, страница 1 из 1
Альтернативные наборы столбцов в таблице
    #36007537
mcrss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток!

Стоит задача реализовать логику следующего содержания.

Есть набор элементов, который выделен в некоторую сущность базы данных:

idname1Элемент 12Элемент 23Элемент 3
Каждый из элементов должен обладать одним из представленных наборов свойств:

Свойство a1Свойство a2Свойство a3xyz
Свойство b1Свойство b2lmno
Т.е. в результате (если мы объединим все данные) мы должны получить нечто подобное:

idnameСвойство a1Свойство a2Свойство a3Свойство b1Свойство b21Элемент 1xyz2Элемент 2lm3Элемент 3no
Элемент не может обладать обоими из наборов, и не может не обладать ни одним из них. Поэтому базу надо спроектировать так, чтоб это условие соблюдалось. И желательно без контроля вставляемых значений с помощью триггеров и прочих средств.

Т.е. здесь мы имеем дело с неким подобием вертикальной разбивки на отдельные сущности, объединенные отношением один-к-одному. Но связываемые с основной таблицей сущности должны быть взаимоисключающими. Как это можно сделать?

Заранее спасибо за помощь :)
...
Рейтинг: 0 / 0
Альтернативные наборы столбцов в таблице
    #36007911
monsenior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У Вас уже есть готовая структура, только пририсуйте к таблицам с свойствами
столбец для определения элемента к которому относяться данные свойства!


P.S. - простите меня глупого
...
Рейтинг: 0 / 0
Альтернативные наборы столбцов в таблице
    #36007957
mcrss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
monseniorУ Вас уже есть готовая структура, только пририсуйте к таблицам с свойствами
столбец для определения элемента к которому относяться данные свойства!
В этом случае не всегда будут соблюдены условия "элемент не может обладать обоими из наборов, и не может не обладать ни одним из них". Т.е. на уровне базы данных нужно не допустить такой ситуации, когда, например, строчки [x, y, z] и [l, m] будут ссылаться на Элемент 1, а Элемент 2 останется вообще без свойств.
...
Рейтинг: 0 / 0
Альтернативные наборы столбцов в таблице
    #36009070
monsenior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcrssmonseniorУ Вас уже есть готовая структура, только пририсуйте к таблицам с свойствами
столбец для определения элемента к которому относяться данные свойства!
В этом случае не всегда будут соблюдены условия "элемент не может обладать обоими из наборов, и не может не обладать ни одним из них". Т.е. на уровне базы данных нужно не допустить такой ситуации, когда, например, строчки [x, y, z] и [l, m] будут ссылаться на Элемент 1, а Элемент 2 останется вообще без свойств.

пример данных
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
id name 
 1  Элемент  1  
 2  Элемент  2  
 3  Элемент  3  
 
ИД элемента Свойство a1 Свойство a2 Свойство a3 
 1  x y z 
 2  z y f

ИД элемента Свойство b1 Свойство b2  1  x y z 
 3  e r

в чем трудность?
...
Рейтинг: 0 / 0
Альтернативные наборы столбцов в таблице
    #36009394
Фотография Ёш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
monsenior
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
id name 
 1  Элемент  1  
 2  Элемент  2  
 3  Элемент  3  
 
ИД элемента Свойство a1 Свойство a2 Свойство a3 
 1  x y z 
 2  z y f

ИД элемента Свойство b1 Свойство b2  1  x y z 
 3  e r

в чем трудность?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
id name 
 1  Элемент  1  
 2  Элемент  2  
 3  Элемент  3  
 
ИД элемента Свойство a1 Свойство a2 Свойство a3 
 1  x y z 
 2  z y f

ИД элемента Свойство b1 Свойство b2  1  x y z 
 3  e r
 1  a k
красную строчку база то же даст вставить, а должна выдать исключение из-за того что ссылка на 1 уже есть в первой таблице.
...
Рейтинг: 0 / 0
Альтернативные наборы столбцов в таблице
    #36009649
vinger4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
id name
1 Элемент 1
2 Элемент 2
3 Элемент 3

(ИД элемента) (Свойство a1/свойство b1) (Свойство a2/Свойство b2) (Свойство a3)
1 x y z
2 z y f
3 a k null

(ИД элемента) - уникальный ключ в последней таблице

так будет конролироваться необходимая уникальность, но свойства придётся хранить в одной таблице и разделить их по "типу свойства"
...
Рейтинг: 0 / 0
Альтернативные наборы столбцов в таблице
    #36010066
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcrss,
похоже на EAV . поищите по форуму .
только хорошо подумайте, нужено ли это (EAV) в вашем случае.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Альтернативные наборы столбцов в таблице
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]