【问题标题】:Database design - unique data from multiple sources数据库设计 - 来自多个来源的独特数据
【发布时间】:2011-04-17 05:07:52
【问题描述】:

我有一个存储汽车图片信息的表格。简而言之,它包含字段“id”、“auto_id”、“name”和“path”。因此,它通过“auto_id”字段链接到特定的汽车条目。

现在考虑我要为房屋添加图片。是创建另一个与此类似的表,还是在现有表中添加一个字段以指出它的图片类型会更好?或者有没有更好的方法来解决这类问题?

编辑:我为措辞道歉。这显然是一个简单的问题,我只是不知道如何最好地将其形成一个连贯的问题。感谢您的耐心和任何帮助。

【问题讨论】:

    标签: mysql sql database database-design


    【解决方案1】:

    我会将您的图片表建模为:

    id name path
    

    并有一个连接表subjects 表:

    picture_id subject_id subject_type
    

    其中picture_id 是图片的 FK,subject_idsubject_type(汽车、房屋等)认为的特定主题的 FK

    【讨论】:

      【解决方案2】:

      好吧,现在还考虑到:

      “id”字段只是图片的唯一标识符。这 'auto_id' 字段是外键 对于汽车来说,图片是 链接到。

      我希望将其设置为 一个人可以拥有尽可能多的照片 与汽车或房屋相关联 喜欢。

      我建议的解决方案是:

      在哪里

      • picture 是你原来的图片表,只有auto_id 现在是subject_id
      • subject 是您原来的汽车表,现在它将存储汽车和房屋记录。添加一个新字段 type_id 作为主题类型表的外键。
      • subject_type 是一个新表,您可以在其中存储所有可能的主题(不仅限于汽车和房屋,还考虑到您的主题类型的未来扩展)。

      (对不起,如果这张图没有反映你的表/列的真实数量/名称/数据类型,只是我不知道这些信息)

      【讨论】:

        【解决方案3】:

        鉴于只有主题(汽车或房屋)会有所不同,并且将来您可能希望增加主题的数量,我建议您将所有主题都放在一个表中,只需添加一个额外的字段来存储照片主题。

        顺便说一句:idauto_id 字段之间有什么区别? 如果没有,我建议去掉auto_id 专栏

        【讨论】:

        • “id”字段只是图片的唯一标识符。 “auto_id”字段是图片链接到的汽车的外键。
        • hmmm,但如果 auto_id 是汽车表的外键,情况会有所改变:在这种情况下,我会将该列移动到汽车表并将其更改为存储照片 ID(因此是图片表的外键),所以它不会干扰图片表中的房屋记录。
        • 但是这样你就不会被限制为每辆车一张照片吗?我希望将其设置为可以拥有尽可能多的与汽车或房屋相关联的照片。
        • 好的,请用所有所说的(另一个缺失的)限制更新问题,有了完整的问题,我们会更容易找到合适的解决方案,比我的更准确。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多