2024-05-29 03:06:05 发布
网友
我有一个网站,模拟课程依赖性如下:
我发现network model是最好的模型或我的案例,但我还没有在RDBMS中找到任何实现。你知道吗
那么我如何在数据库中模拟图形呢?你知道吗
一个天真的Django模型可能看起来像这样:
from django.db import models class Graph(models.Model): name = models.CharField(max_length=100) description = models.TextField() class Node(models.Model): name = models.CharField(max_length=100) graph = models.ForeignKey(Graph, on_delete=models.CASCADE) class Edge(models.Model): name = models.CharField(max_length=100) graph = models.ForeignKey(Graph, on_delete=models.CASCADE) from_node = models.ForeignKey(Node, on_delete=models.CASCADE, related_name="from_node") to_node = models.ForeignKey(Node, on_delete=models.CASCADE, related_name="to_node")
这允许您存储任意图形信息。在您的例子中,节点将是课程,边将是依赖项。对于处理这些信息,关系数据库不是理想的工具。也许您可以通过查询整个图形来最小化查询,并使用与图形相关的工具(例如NetworkX)来处理这些数据。你知道吗
我想指出的这个模型的另一个问题是,通常可以存储从一个图到另一个图的边。此外,还必须考虑其他与图相关的属性,如重复边或循环。你知道吗
一个天真的Django模型可能看起来像这样:
这允许您存储任意图形信息。在您的例子中,节点将是课程,边将是依赖项。对于处理这些信息,关系数据库不是理想的工具。也许您可以通过查询整个图形来最小化查询,并使用与图形相关的工具(例如NetworkX)来处理这些数据。你知道吗
我想指出的这个模型的另一个问题是,通常可以存储从一个图到另一个图的边。此外,还必须考虑其他与图相关的属性,如重复边或循环。你知道吗
相关问题 更多 >
编程相关推荐