Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 大型数据库表的最佳逼近结构_Database_Postgresql_E Commerce - Fatal编程技术网

Database 大型数据库表的最佳逼近结构

Database 大型数据库表的最佳逼近结构,database,postgresql,e-commerce,Database,Postgresql,E Commerce,假设我有一个应用程序,用户可以上传产品的文件。其特殊性是用户可以上传相同的产品,但有一些不同的东西,比如数量、描述、价格、供应商甚至是类别,这让我说一个用户可以有很多产品,但一个产品只能有一个用户。问题是…如果我有1000个用户,每个用户上传一个包含100000个产品的列表,我的表产品会非常大,所以我认为性能会有一些问题。第一次,我想为每个用户制作一个产品表,比如table\u products\u user\u id,但我认为这不是一个好方法,所以我需要帮助。请建议一种更好的方法。如果不同的用

假设我有一个应用程序,用户可以上传产品的文件。其特殊性是用户可以上传相同的产品,但有一些不同的东西,比如数量、描述、价格、供应商甚至是类别,这让我说一个用户可以有很多产品,但一个产品只能有一个用户。问题是…如果我有1000个用户,每个用户上传一个包含100000个产品的列表,我的表产品会非常大,所以我认为性能会有一些问题。第一次,我想为每个用户制作一个产品表,比如table\u products\u user\u id,但我认为这不是一个好方法,所以我需要帮助。请建议一种更好的方法。

如果不同的用户与同一产品关联,您不必多次存储每个产品

如果产品都不同,那么设计很简单:两个具有外键关系的表

1000乘以100000等于100000000,这是个大数目,但PostgreSQL没有问题

如果您确保所有对大表的访问都是通过索引进行的,那么查询就会很快

如果您需要顺序扫描,但您知道,例如,您总是为某个用户查询产品,那么按用户划分大表将有所帮助

一个重要的考虑因素是如何处理旧数据。对表进行分区可以方便地实现这一点