0

在处理具有类别的数据时,例如视频 + 流派和相册 + 照片,有什么方法可以将这些关系存储在数据库中?例如,如果我有一堆图像(比如说 A、B、C、D),作为用户,我将其存储到一个名为“我的家庭”的类别中,这些图像如何与那个类别相关?

4

1 回答 1

1

您可以使用“多对多”关系或“多对一”关系。
视频到流派是多对多
照片到相册是多对一或多对多
图像到类别是多对多

在基于 Python 的 Django 应用程序中,您的模式可能如下所示...

from django.db import models

class Genre(models.Model):
    name = models.CharField(max_length=50)

class Video(models.Model):
    title = models.CharField(max_length=500)
    synopsis = models.TextField()
    genres = models.ManyToManyField(Genre)
    video_file = models.FileField(upload_to="movie_files_folder")

Django API 隐藏了有关最终将使用这些模型构建的 SQL 模式的详细信息。它还抑制了这两个模型的关联方式。以我的经验,这些细节对于使数据库驱动的应用程序正常运行并不是必需的。

据我了解,Video.genres只是主键列表。当您调用Video.genres.all()它时,它使用主键列表,例如[5, 7, 9]查找存储在Genre表中的数据

于 2013-05-27T23:42:00.047 回答