gpt4 book ai didi

php - 学说最佳关系 3 个表与 1 个文件表 - 实践/性能

转载 作者:行者123 更新时间:2023-11-29 22:25:15 25 4
gpt4 key购买 nike

我在谷歌上搜索了几天,无法决定是否正确。所有这些都有效,但哪一个可能是最佳实践/性能

我有一些 table :

1. documents
2. envelopes
3. contracts

x. Files

每1-3个表有很多文件。 1-3 不相关

变体:

  1. 第 1-3 列表的一对多关系以及文件与每个表的多对一关系

文件表可能如下所示

    id; name; documentsID; evelopesID; contractsID

2.如果文件定义为多对多,那么我还需要 3 个表

   1.documents
1.1 documentsFiles
2.envelopes
2.1 envelopesFiles
3.contracts
3.1 contractsFiles
x. Files

and Files table contain only id; name

3.将文件表拆分为单独的实体,并始终选择作为示例 - 使用服务或 Controller

    // get
$source = 'document';
$data=$this->getDoctrine()
->getRepository('AppBundle:Documents')
->find($id);
$files=$this->getDoctrine()
->getRepository('AppBundle:Files')
->findBy(array('source_id' => $id,'source'=>$source));

//save file
$source = 'documents';
$uploader = $this->get('uploader');
$uploader->upload($data->getFile(),source ,$data->getId());

最佳答案

选项 2 看起来非常简单。拥有 3 个独立的连接表可能看起来有点困惑,但它不会对性能产生负面影响。

作为另一种选择,我可以建议一个文件表作为单表继承(父类(super class)文件,由类 DocumentsFile、EnvelopesFile、ContractsFile 继承)、DiscriminatorColumn:linkedto (例如)。

在您的数据库架构中,这看起来像:ID、名称、链接到

(linkedto可能有值:文档、信封、契约(Contract))

Single Table Inheritance

关于php - 学说最佳关系 3 个表与 1 个文件表 - 实践/性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30322621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com