gpt4 book ai didi

mysql - 可能的mysql数据库表结构的父子关系

转载 作者:行者123 更新时间:2023-11-29 14:20:57 25 4
gpt4 key购买 nike

我有一道考试题:我的名字是 D。我是三个 child A、B 和 C 的父亲。我有一个 parent Z。我的 parent 有一个 parent X,我有一个兄弟 Y。我存储在 Mysql 数据库中。

CREATE TABLE `test_tree` (
`idperson` int(11) NOT NULL,
`name` varchar(45) DEFAULT NULL,
`prime` int(11) DEFAULT NULL,
`product` int(11) DEFAULT NULL,
PRIMARY KEY (`idperson`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

INSERT INTO `temp`.`test_tree`
(`idperson`,
`name`,
`prime`,
`product`)
VALUES
('1', 'x', '2', '2'),
('2', 'z', '3', '6'),
('3', 'y', '17', '102'),
('4', 'd', '5', '30');

注意:Prime 和 products 用于计算我家的亲子关系。Prime = 下一个可用的素数产品 =(质数 * 父代的产品)。每个素数的乘积只能除以那些素数。

问题:还有哪些其他方法可用于创建树以及它们与当前解决方案相比如何?

我的回答:

Solution 1:
**test_tree**
-id pk
-parent_id fk (references id)
-name

Solution 2:
**person**
-id pk
-name

**relation**
-child_id fk (references person.id)
-parent_id fk (references person.id)

For me, solution 2 has redundant table.

你能建议我其他方法来为这种关系创建表吗?

最佳答案

您省略了用于表示层次结构的“嵌套集模型”。

http://en.wikipedia.org/wiki/Nested_set_model

<小时/>

维基百科文章提供了一个示例,以及包含大量示例的其他引用文献的链接。

关于mysql - 可能的mysql数据库表结构的父子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11764437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com