Нужен алгоритм для сравнения по уровням данным в массиве

286
24 мая 2017, 07:24

Есть объект с родственниками, они соотносятся друг к другу по типу: Родитель, Ребенок, Брат/Сестра, Равный

{
"parent": "Bill",
"parent": "Anna",
"children": [
    {
    "parent": "Mark",
    "parent": "Sara",
    "children": [
            { "parent": "Sofia" },
            { "parent": "Patric" },
            { "parent": "Marta" }
    ]}
]}

В БД есть таблици:

Peoples (id, name);
References (ENUM(parent, children, sibling), тут видимо надо будет дополнить);

Как задать между ними родственные связи, что бы это выглядело так: Если я делаю запрос в БД для Anna, получаю:

"sibling": Bill,
"children": Mark,
"children": Sara,

Если я делаю запрос в БД для Marta, получаю:

"parent": Mark,
"parent": Sara,
"sibling": Sofia,
"sibling": Patric,
"sibling": Marta,

Вопрос не в том, как делать запрос, а как сравнивать их соотношение между собой и назначать роли относительно друг друга.

Например, получаем Bill и Anna смотрим, что они на одном уровне значит Bill для Anna -> sibling и наоборот и записываем эти связи в БД.

Например, получаем Mark и Anna смотрим, что Mark на уровень ниже Anna значит Anna для Mark имеет уровень -> parent а Mark для Anna имеет уровень -> children и записывем эти связи в БД.

П.С. Не будем придираться к неточностям родственных связей.

Answer 1

Думаю, можно придумать что-то очень костыльное, чтобы виды родственных связей были реализованы таблицей, но это будет очень плохое решение.

Вам нужна всего одна таблица:

People (id, name, father_id, mother_id)

А логику получения родственников целиком нужно вынести в код.

READ ALSO
Представление данных JSON

Представление данных JSON

Доброе времени сутокИмеется некий набор json данных:

194
Google map API (Uncaught TypeError: b.get is not a function)

Google map API (Uncaught TypeError: b.get is not a function)

Предполагается, что мы уже имеем инициализированную карту и маркеры, хранящиеся в неком массиве

359
Подскажите кто знает, в чем причина ошибки: Uncaught SyntaxError: Unexpected token <

Подскажите кто знает, в чем причина ошибки: Uncaught SyntaxError: Unexpected token <

Проблема вот в чем на локалке все отлично консоль молчит но вот на боевом сервере вылазит эта ошибкаСтоит wp вот ссылка на сайт

234
как отправить get запрос js?

как отправить get запрос js?

в лучшем случае это jquery вариант, но значения не имеетНужно сделать запрос вида http://api

520