我想创建一个家庭树网站,其中可以通过后端动态添加成员。我是php-mvc,mysql。 我通过后端添加成员,我有4个表1.成员 - 成员的详细信息以及父亲,母亲ID; 2个合作伙伴 - 展示合作伙伴关系 3个孩子 - 展示孩子的关系 4兄弟 - 显示兄弟关系
我的表结构 成员
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`)
)
我正在为此表添加值。现在我需要将其显示为树结构。 我没有从我的搜索中得到任何想法, 任何人都可以帮助我将数据作为家谱进行遍历。
答案 0 :(得分:0)
我认为您的表结构不是最佳解决方案。你应该创建一个表:“Person”并将每个人都放入该表中。您可以在“人员”表中添加“角色”字段,该字段表示该人员的“角色”(父亲,母亲,伴侣等)。有关分层数据的更多信息:http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/。
如果您可以查询数据,那么您只需将其转换为json树。有关json树结构的更多信息,请查看“jqTree”。