sqlite - 图形家谱算法

标签 sqlite oop graph-algorithm family-tree xojo

我有一个带有 3 个表的 SQLite 数据库:


  • 编号:整数
  • 姓名:文字
  • 性别:整数

  • 家庭
  • 编号:整数
  • 丈夫ID:整数(个人ID)
  • WifeID:整数(个人 ID)

  • children
  • 编号:整数
  • ChildID:整数(个人 ID)
  • FamilyID:整数
  • 订单:整数

  • 所以我很想创建一个图形输出。

    OOP 类应该是什么样子的? child 的 child 也应该被画出来。所以我需要交互来选择每个 child 的家庭,其中 child 是丈夫或妻子,并找到其中的任何 child 。如何做到这一点(SQL SELECT)?以及如何创建图形输出类?

    有没有可能一步步一起创造出这样一个概念?阅读了很多关于 Tilford 算法的内容,但我不是专业的,只是爱好程序员。对我来说太高了:D

    使用 Xojo/RealBasic/VB/Delphi 进行开发。

    谢谢大家

    最佳答案

    他们不是您问题的简单答案,因为有很多方法可以做到这一点。您必须首先学习 Xojo 数据库和图形类。在我看来,除非你对那些相当熟悉,否则其余的都是学术性的。

    不过,一般来说,您可以创建代表 Persons、Families 和 Children 的类对象。 Families 类将有一个 Persons 数组,而 children 将有一个指向其 parent 的属性(尽管他们不会同时拥有母亲和父亲吗?)。就个人而言,我会让这些类完成加载和获取关系数据的所有数据库工作。

    要在 Canvas 中显示,您将遍历对象,然后通过 Canvas.Graphics 对象单独绘制它们。我建议查看 https://github.com/alexrestrepo/RBCustomFrames 上的 CustomFrames 项目。感受一下如何做到这一点。 FWIW,这可能是你最挣扎的部分。

    对于刚接触 Xojo 的人来说,这是一个大项目。无论您最终使用哪种语言,在开始之前您都需要做一些功课。

    关于sqlite - 图形家谱算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35178515/

    相关文章:

    linux - 为什么我的 SQLite3 表中出现 UNIQUE Con​​straint Failure

    python - 如何强制 str(f) 产生与 f.__str__() 相同的输出?

    algorithm - 在网格上绘制自动调整路径

    objective-c - 应用组织 : Classes vs arrays

    perl - Moose 角色中的方法名称冲突

    algorithm - 使用图遍历来测试图是否是完美二叉树

    algorithm - 从每个节点有效地找到图的深度

    Android SQLite 条件在轮类期间失败更改

    javascript - SQLite3Result 类的对象无法转换为字符串

    sqlite:如何选择 current_timestamp 作为自 1970 年 1 月 1 日以来的毫秒值