Динамическое генеалогическое древо через php javascript

я хочу создать веб-сайт генеалогического древа, в котором члены могут быть добавлены динамически через бэкэнд. Я использую php-mvc, mysql. Я добавляю участников через бэкэнд, и у меня есть 4 таблицы: 1. детали участников, а также идентификаторы отца, матери; 2 partner — показать отношения партнеров 3 child — показать отношения потомков 4 sibling — показать отношения братьев и сестер

Моя структура таблицы Участники

CREATE TABLE IF NOT EXISTS `members` (
  `members_id` int(10) NOT NULL AUTO_INCREMENT,
  `members_family` int(10) NOT NULL,
  `members_first_name` varchar(500) NOT NULL,
  `members_sur_name` varchar(500) DEFAULT NULL,
  `members_gender` int(10) DEFAULT '0' COMMENT '0-notset,1-male,2-female,3-transgender',
  `members_birth_date` date DEFAULT NULL,
  `members_is_living` int(10) DEFAULT NULL,
  `members_death_date` date NOT NULL DEFAULT '0000-00-00',
  `members_email` varchar(1000) DEFAULT NULL,
  `members_mobile` varchar(500) DEFAULT NULL,
  `members_telephone` varchar(500) DEFAULT NULL,
  `members_website` varchar(1000) DEFAULT NULL,
  `members_blog` varchar(1000) DEFAULT NULL,
  `members_skype` varchar(1000) DEFAULT NULL,
  `members_address` varchar(5000) DEFAULT NULL,
  `members_birth_place` varchar(1000) DEFAULT NULL,
  `members_death_place` varchar(1000) DEFAULT NULL,
  `members_profession` varchar(1000) DEFAULT NULL,
  `members_company` varchar(1000) DEFAULT NULL,
  `members_interests` varchar(5000) DEFAULT NULL,
  `members_notes` varchar(1000) DEFAULT NULL,
  `members_father` varchar(10) DEFAULT NULL,
  `members_mother` int(10) DEFAULT NULL,
  `members_generation` int(10) DEFAULT NULL,
  `members_status` int(10) NOT NULL,
  `members_image` varchar(1000) DEFAULT NULL,
  `members_inserttime` datetime NOT NULL,
  `members_updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`members_id`)
) 

Партнер

CREATE TABLE IF NOT EXISTS `partner` (
  `partner_id` int(10) NOT NULL AUTO_INCREMENT,
  `partner_member` int(10) NOT NULL,
  `partner_of_member` int(10) NOT NULL COMMENT 'partner of which member in members_table',
  `partner_relation_status` int(10) NOT NULL COMMENT '1-current,2-ex-partner',
  `partner_status` int(10) NOT NULL,
  `partner_inserttime` datetime NOT NULL,
  `partner_updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`partner_id`)
) 

ребенок

CREATE TABLE IF NOT EXISTS `child` (
  `child_id` int(10) NOT NULL AUTO_INCREMENT,
  `child_member` int(10) NOT NULL,
  `child_of_member` int(10) NOT NULL,
  `child_status` int(10) NOT NULL,
  `child_inserttime` datetime NOT NULL,
  `child_updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`child_id`)
)

брат или сестра

CREATE TABLE IF NOT EXISTS `sibling` (
  `sibling_id` int(10) NOT NULL AUTO_INCREMENT,
  `sibling_member` int(10) NOT NULL,
  `sibling_of_member` int(10) NOT NULL COMMENT 'sibling of which member in mebers table',
  `sibling_relation` int(10) NOT NULL COMMENT '1-younger,2-elder',
  `sibling_status` int(10) NOT NULL,
  `sibling_inserttime` datetime NOT NULL,
  `sibling_updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`sibling_id`)
) 

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


person anjana    schedule 06.01.2016    source источник


Ответы (1)


Я не думаю, что ваша структура таблицы - лучшее решение. Вы должны создать 1 таблицу: «Человек» и поместить каждого человека в эту таблицу. Вы можете добавить поле «роль» в таблицу «Персона», которое указывает «роль» (отец, мать, партнер и т. д.) этого человека. Дополнительная информация об иерархических данных: http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/.

Если вы можете запросить данные, вам нужно только преобразовать их в дерево json. Взгляните на "jqTree" для получения дополнительной информации о древовидной структуре json.

person cwouter    schedule 06.01.2016