上下文:我最近开始了一份新工作。我发现我的同事正在通过文件和电子邮件交换信息(产品规格表,3D效果图等),这会产生令人生气的情况,即传递多个版本的文件。我决定开始使用FileMaker构建解决方案来解决这个问题,主要是因为我不是一个技术人员而且FileMaker似乎很容易理解。我从头开始学习数据库设计和FileMaker。
目的:解决方案需要能够执行以下操作:
在我看来,这将通过维护一组可以在不同视图中导出的准确数据来帮助每个人。
问题:将不同类型的文件合并到数据库中的最佳方法是什么?
对于某些观点,我希望能够显示相关文件,包括3D效果图,图像,SoC数据表,用户手册等。架构会是什么样子?
关于文件,我有以下表格:
文件(FileID,FileFormatID,FileName,FileTypeID,FileContainer,DateCommited,DateModified,TimeModified,Comment)
FileFormats(FileFormatID,FileFormat),其中FileFormat是svg,pdf,Word,png,jpg等......
FileTypes(FileTypeID,FileType),其中FileType为3D渲染,Gerber,Photo,Certification,QIG等......
由我虚弱的心灵产生的解决方案:
ProductFiles(ProductID,FileID),其中ProductID是Products表中的键。
SoC_Files(SoC_ModelNo,FileID),其中SoC_ModelNo是SoC表中的键。
这样我就可以在视图中包含与产品或SoC相关的文件列表,只显示我需要的FileTypes或FileFormats。
然而,这似乎很混乱。有更好的方法吗?
谢谢!这是我关于StackOverflow的第一个问题,所以如果问题不清楚或不合适,请告诉我。
编辑:SoC本身不是产品,它们被用于产品中。有些客户想要这些信息。每个文件可以属于多个产品或SoC,每个产品或SoC可以有多个文件。答案 0 :(得分:0)
我怀疑我们需要有关您的解决方案的更多信息。如果它主要是关于文档,那么所记录的对象之间的差异很可能是无关紧要的。
在任何情况下,您都描述了文件和产品之间的多对多关系 - 因此您应该在这两者之间有一个连接表,其中每个文件到产品的组合将是存储为个人记录。
如果事实证明您确实需要一个单独的SoC表,则可以将连接表变为" star-join"表 - 意味着它将包含以下字段:
并且在每条记录中,ProductID或SoCID字段都是空的。
请注意,在Filemaker中,您可以使用另一个选项来建立多对多关系:您可以使用“文件”表中的复选框来选择文件所记录的产品。但是,在这种情况下,(1)您无法记录有关特定文件到产品连接的任何内容;(2)生成逐个产品或副产品的报告将更加困难反之亦然。
FileFormats表是多余的,可以用自定义值列表替换:文件扩展名是唯一且不变的,并且您无需记录任何文件扩展名。我对FileTypes表有一种感觉。
上述例外:如果您可以使用不同格式的相同文件的多个版本,则可能需要为物理文件添加另一个表。