Задача: Описать тегами структуру данных. Желательно любую. С зависимостями.
- Теги – это одноуровневый справочник.
- Любым данным сопоставляются теги. Т.е. любому элементу другого справочника или документа сопоставляется тег.
- Теги могут быть связаны между собой.
- Связь тегов может быть:
- простой
“Тег1:Тег2” это значит, что у Тега2 есть Тег1, иными словами Тег2 входит в группу Тег1. - и сложной (составной)
Например:
1. “Тег1:Тег2:Тег3” – это значит что для Тега1 свойство Тег2 имеет значение Тег3. Например, “Клиент1:Бухгалтер:Иванов”. В принципе если Иванов работает только у Клиента1, и только бухгалтером, то эту связь можно заменить двумя простыми “Клиент1:Иванов”, “Бухгалтер:Иванов”, но возможно, а такое у меня действительно встретилось, что Иванов работает директором у Клиента2, следовательно, мы бы должны были ввести теги “Клиент2:Иванов” и “Директор:Иванов”, из чего в итоге мы бы могли получить, что Иванов работает директором у Клиента1. Именно для этого и введено понятие сложной связи)
2. “Тег1:Тег2:Тег3:Тег4” – это поддается вариативному пониманию. Например, “Клиент1:Бухгалтер:Главный:Петров” можно понять как, что у Клиента1 свойство Бухгалтер, которое содержит свойство Главный, которое равно = Петров. Или как, что у Клиента1 свойство “Бухгалтер:Главный” имеет значение Петров. Или как у “Клиент1:Бухгалтер” свойство “Главный” = Петров.
- простой
- Связи хранятся как отдельный справочник.
- Связь тегов может быть:
- Построение зависимостей тегов:
- К сожалению это еще предстоит описать. На данный момент я могу лишь дать пример.
Итак. У нас есть следующие связи (с соответствующими тегами):
1.“Клиенты:Клиент1”
2.“Клиенты:Клиент2”
3.“Клиент1:Директор:Кикоин”
4.“Клиент1:Бухгалтер:Иванов”
5.“Клиент1:Бухгалтер:Главный:Петров”
6.“Клиент2:Директор:Иванов”
7.“Клиент2:Бухгалтер:Сидоров”
8.“Клиент3:Директор:Геймгольц”
9.“Должности:Бухгалтер”
10.“Должности:Директор”
11.“Список1:Клиент1:Бухгалтер:Главный”
12.“Список1:Клиент2:Директор”
13.“Список2:Клиент1:Бухгалтер”
14.“Список2:Директор”
15.“Списки:Список1”
16.“Списки:Список2”
Построим дерево для Клиенты: - Клиенты:
- Клиент1
- Директор
- Кикоин
- Должности
- Список2
- Списки
- Бухгалтер
- Главный
- Петров
- Список1
- Списки
- Петров
- Главный
- Список1
- Списки
- Иванов
- Должности
- Список2
- Списки
- Главный
- Бухгалтер
- Петров
- Должности
- Список2
- Списки
- Список1
- Списки
- Петров
- Бухгалтер
- Должности
- Список2
- Списки
- Список1
- Списки
- Кикоин
- Директор
- Должности
- Список2
- Списки
- Иванов
- Бухгалтер
- Должности
- Список2
- Списки
- Петров
- Бухгалтер
- Главный
- Список1
- Списки
- Список2
- Списки
- Должности
- Список 2
- Списки
- Фиуфи! Остановился только на Клиент1. Надеюсь, что дерево заполнил полностью. Теперь осталось подумать, все ли я правильно заполнил и сформулировать алгоритмы, по которым я строил это дерево.Предвижу проблемы с формулировкой при сложных связях.
Комментариев нет:
Отправить комментарий