首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态家族树遍历php javascript

动态家族树遍历php javascript
EN

Stack Overflow用户
提问于 2016-01-06 18:10:14
回答 1查看 393关注 0票数 0

我想创建一个家庭树网站,其中的成员可以通过后端动态添加。我用的是php-mvc,mysql。我通过后端添加成员,我有4个表1.成员-成员的详细信息以及父、母I;2合作伙伴-显示合作伙伴关系3子-显示子关系4兄弟-显示兄弟关系

我的表结构成员

代码语言:javascript
复制
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`)
) 

合作伙伴

代码语言:javascript
复制
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`)
) 

孩子

代码语言:javascript
复制
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`)
)

兄弟姐妹

代码语言:javascript
复制
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`)
) 

我正在将值添加到这个表中。现在,我需要将其显示为一个树结构。我没有从我的搜索中得到任何想法,有没有人能帮我像家谱一样遍历数据。

EN

回答 1

Stack Overflow用户

发布于 2016-01-06 21:01:49

我不认为您的表结构是最好的解决方案。您应该创建一个表:" person“,并将每个人放入该表中。您可以在"Person“表中添加一个"role”字段,表示"role“(父亲、母亲、合作伙伴等)。那个人的。有关分层数据的更多信息,请访问http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/

如果可以查询数据,那么只需将其转换为json树即可。有关json树结构的更多信息,请查看"jqTree“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34630465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档