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