【问题标题】:Storing items and groups of items存储项目和项目组
【发布时间】:2014-06-12 19:36:38
【问题描述】:

假设我正在存储图像。我有一个数据库中的所有图像,具有自动增量 ID、文件名、大小等。现在我希望能够对图像进行分组。例如,我想要“自然”组中的所有自然图片。
我有一个名为“组”的新表。我应该如何将图像放在“自然”组中?以下是我的一些想法:
1. 有一个新表存储图像 id 和组 id。如果组自然有 5 张图片,那么那里将有 5 个条目指向自然。
2. 将所有文件作为数组存储在组行中。例如,我将在组表中有一个列来放置一组文件。
3. 将组存储在图像表中。我会在 images 表中有一个列,在其中设置它所在的组。

哪个是最佳的行动选择?

【问题讨论】:

    标签: database database-design database-schema


    【解决方案1】:

    让我们从关系开始。

    • 一张图片可以属于一个或多个组。
    • 一个组可以有一个或多个图像。

    所以,现在我们创建域表。

    Image
    -----
    Image ID
    File name
    Image size
    ...
    
    Group
    -----
    Group ID
    Group name
    Group description
    ...
    

    现在,我们创建联结表

    GroupImage
    ----------
    Group ID
    Image ID
    Group image time stamp
    ...
    

    主(集群)键是(组 ID,图像 ID)。您还可以在 (Image ID, Group ID) 上定义一个唯一索引。

    基本上,您定义了关系,然后您可以定义关系表。

    【讨论】:

      【解决方案2】:

      我会创建一个新的组表,其中包含 groupid 和组(例如自然、人等)作为字段。然后在图像表中添加 groupid 作为字段。图像表中的每个图像都被分配了组表中它所属组的 groupid。

      【讨论】:

        猜你喜欢
        • 2019-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-26
        • 1970-01-01
        • 1970-01-01
        • 2015-05-15
        • 1970-01-01
        相关资源
        最近更新 更多