Database 如何将不同类型的文件合并到产品数据库中?

Database 如何将不同类型的文件合并到产品数据库中?,database,database-design,relational-database,database-schema,filemaker,Database,Database Design,Relational Database,Database Schema,Filemaker,上下文:我最近开始了一份新工作。我发现我的同事们通过文件和电子邮件交换信息(产品规格表、3D效果图等),这造成了一种令人恼火的情况,即文件的多个版本被传递。我决定开始使用FileMaker构建解决方案来解决这个问题,主要是因为我不是一个真正的技术人员,FileMaker似乎很容易理解。我从零开始学习数据库设计和FileMaker 目的:解决方案需要能够执行以下操作: 允许集中管理数据和文件 为销售人员导出产品路线图 为销售人员导出当前产品目录 出口产品规格表 在我看来,这将帮助每个人维护一组可以

上下文:我最近开始了一份新工作。我发现我的同事们通过文件和电子邮件交换信息(产品规格表、3D效果图等),这造成了一种令人恼火的情况,即文件的多个版本被传递。我决定开始使用FileMaker构建解决方案来解决这个问题,主要是因为我不是一个真正的技术人员,FileMaker似乎很容易理解。我从零开始学习数据库设计和FileMaker

目的:解决方案需要能够执行以下操作:

  • 允许集中管理数据和文件
  • 为销售人员导出产品路线图
  • 为销售人员导出当前产品目录
  • 出口产品规格表
  • 在我看来,这将帮助每个人维护一组可以在不同视图中导出的准确数据

    问题:将不同类型的文件合并到数据库中的最佳方式是什么

    对于一些视图,我希望能够显示相关文件,包括3D渲染、图像、SoC数据表、用户手册等。模式会是什么样子

    关于文件,我有以下表格:

    • 文件(FileID、FileFormatID、FileName、FileTypeID、FileContainer、datecommitted、DateModified、TimeModified、Comment)

    • FileFormats(FileFormatID,FileFormat),其中FileFormat是svg、pdf、Word、png、jpg等

    • 文件类型(FileTypeID,FileType),其中文件类型是3D渲染、Gerber、照片、认证、QIG等

    由我虚弱的头脑产生的解决方案

    • ProductFiles(ProductID,FileID),其中ProductID是Products表中的键

    • SoC_文件(SoC_ModelNo,FileID),其中SoC_ModelNo是SoC表中的键

    这样,我可以在视图中包含与产品或SoC相关的文件列表,仅显示我需要的文件类型或文件格式

    然而,这似乎很混乱。有更好的方法吗

    谢谢!这是我关于StackOverflow的第一个问题,所以如果这个问题不清楚或不合适,请告诉我


    编辑:SOC本身不是产品,它们用于产品中。一些客户需要这些信息。每个文件可以属于多个产品或SoC,每个产品或SoC可以有多个文件。

    我想我们需要更多关于您的解决方案的信息。如果主要是关于文档,那么被文档化的对象之间的差异很可能是无关紧要的

    在任何情况下,您都描述了文件和产品之间的多对多关系,因此您应该在这两者之间有一个联接表,其中文件到产品的每个组合都将存储为一个单独的记录

    如果您确实需要一个单独的SoC表,您可以将连接表转换为“星形连接”表,这意味着它将包含以下字段:

    • 文件ID
    • 产品ID
    • 社交
    在每个记录中,ProductID或SoCID字段都将为空

    请注意,在Filemaker中,您可以使用另一个选项来建立多对多关系:您可以使用“文件”表中的复选框来选择文件所记录的产品。但是,在这种情况下,(1)您将无法记录有关要加入产品的特定文件的任何信息,(2)按产品生成文件报告将更加困难,反之亦然

    FileFormats表是冗余的,可以用自定义值列表替换:文件扩展名是唯一的且不变的,您没有任何关于它们的记录。我觉得FileTypes表也是如此


    上述情况的一个例外:如果您可以使用不同格式的相同的文件的多个版本,则可能需要为物理文件添加另一个表。

    我想我们需要有关您的解决方案的更多信息。如果主要是关于文档,那么被文档化的对象之间的差异很可能是无关紧要的

    在任何情况下,您都描述了文件和产品之间的多对多关系,因此您应该在这两者之间有一个联接表,其中文件到产品的每个组合都将存储为一个单独的记录

    如果您确实需要一个单独的SoC表,您可以将连接表转换为“星形连接”表,这意味着它将包含以下字段:

    • 文件ID
    • 产品ID
    • 社交
    在每个记录中,ProductID或SoCID字段都将为空

    请注意,在Filemaker中,您可以使用另一个选项来建立多对多关系:您可以使用“文件”表中的复选框来选择文件所记录的产品。但是,在这种情况下,(1)您将无法记录有关要加入产品的特定文件的任何信息,(2)按产品生成文件报告将更加困难,反之亦然

    FileFormats表是冗余的,可以用自定义值列表替换:文件扩展名是唯一的且不变的,您没有任何关于它们的记录。我觉得FileTypes表也是如此


    上述情况的一个例外:如果您可以使用不同格式的相同的文件的多个版本,您可能需要为物理文件添加另一个表。

    我不确定您的问题到底是什么。每个文件是否与(最多)一个产品相关?产品和SoC之间有什么区别(看,为什么SoC不包括在产品表中)?请阅读数据库子类型/超类型或“表继承”@michael.hor257k Ah。SOC本身不是产品,它们用于产品中。一些客户需要这些信息。E