@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 просмотров
Пригласить эксперта
Ответы на вопрос 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)
Ну и дальше крутите эту структуру данных

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

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

Войти через центр авторизации
Похожие вопросы