Задать вопрос
@redduckrobot

Стоит ли использовать граф и в каких случаях их используют?

Здравствуйте. Столкнулся с такой задачей: есть разделение пользователей на мужчин и женщин, у мужчин сразу идет разбивка на возраст с привязкой к данным, а у женщин сперва идет по беременная/кормящая/нормальная и потом на возраст с данными:

data: женщина, беременная, 18-30, набор_данных1
data: женщина, нормальная, 18-30, набор_данных2
data: мужчина, 15-18, набор_данных3

data2:...


Сперва я привязал к data дополнительные поля с полом, статусом (для женщин), возрастом и данными. Решеается не принужденно через ифы, но вот я призадумался что это дерево и не проще ли будет вытащить нужные данные другим способом? С графами я к сожалению не успел еще детально ознакомиться, поэтому прошу вашей подсказки, стоит ли его делать таким образом, или по другому, а может быть оставить как есть, и как вообще определить когда нужен граф (в данном случае дерево).

Так вот, что если к data привязать textfield и в него писать данные в формате словаря/json/etc и обращаться по ключам? Т.е.

a = {
   'female': {
      'pregnant': {'18-30': 'data_set'},
      ...
   },
   'male': {'15-18': 'data_set2'}
}


Ну а дальше, для получения данных, берем данные юзера и поставляем ключи:

user_data = a[gender][status][age_range]

правда тут есть две проблемы, это отсутсвие статуса у мужчины и нужно чуть дописать код для получения именно данных по age_range, но это не страшно.

Что скажете?
  • Вопрос задан
  • 511 просмотров
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 4
sim3x
@sim3x
Для аналитики - лучше остаться в sql
Для простоты написания - также

Хочешь помучаться и натянуть сову на глобус - используй графовые бд
Ответ написан
Комментировать
zelsky
@zelsky
Если я понял вопрос то зделай все тоже но на NoSQL базе. Например монго. Там все в json если я верно понял nosql
Ответ написан
leahch
@leahch
3D специалист. Dолго, Dорого, Dерьмово.
Ох, как хорошо ваши данные ложатся на elasticsearch!
Ответ написан
Комментировать
AtomKrieg
@AtomKrieg
Давай я поищу в Google за тебя
Вы пропустили раздел со структурами данных в питоне. Графы не для таких задач. В Вашем случае требуется:
collection = defaultdict(list)
key = ("male", "18-25")
data = ...
collection[key].append(data)
Ну и дальше крутите эту структуру данных

Графы для поисков путей. Для бизнес задач почти нет применения.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы