mysql - 每个用户保存相似记录的单个表还是单独的表? (表现??)

标签 mysql

对于 MySQL 数据库,我有 2 个场景,我不确定该选择哪一个,并且对于一些表我也遇到了同样的困境。

我正在制作一个仅供成员(member)访问的网络应用程序。每个成员都有自己的交易、费用和“列表”。不同用户的记录标准是相同的,但每个用户可以拥有完全不同的记录数量。

我的两种情况是,我是否应该有一张用于交易的表,一张用于列表的表,一张用于费用的表......并且在每个表中都有一个链接到特定用户的主键的字段。或者...如果最好为每个用户提供单独的交易表、费用表和列表表..(使用组合字符串,如“user”+deals 或“user”+exp)。优惠可以在 1 或 2 个用户之间使用,但费用和列表是完全独立的。我将有一个主交易表来保存每笔交易的所有信息,但有一个用户交易表将其主键链接到交易主键。

那么,是单独的表还是一张表?如果有成千上万的用户有数百个交易/费用/列表..我只是不希望在大量交易或费用积累后查询变得非常慢...没有用户需要查看任何内容其他用户...严格来说只是他们的数据。

此外,我熟悉数据库的工作原理和存储数据的方式,但并不是 100% 清楚。我只是希望它能够快速工作,所以我的另一个问题是(尽管这可能很愚蠢)当用户提交新交易或费用时......它是插入到表的开头还是结尾?或者它是无关紧要的......因为查询将在返回信息之前以任一方式搜索表中的所有内容?

最佳答案

始终使用一张表来存储一种实体。

或者更具体地说,你所说的是一种令人讨厌的、复杂的优化,它只适用于极小的案例子集,而这些案例几乎肯定不是你的。

您只想使用一张表来表示一种条目。对其进行适当的索引,并在不再需要旧记录时尝试将其删除。

此外,很多人对“大数据”的理解实际上并不是特别大。数据库通常不需要太多优化,而其数据仍然适合 RAM,这在现代系统上意味着 32Gb。

关于mysql - 每个用户保存相似记录的单个表还是单独的表? (表现??),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5131586/

相关文章:

php - 如果表时间戳已更新,如何仅选择行

php - 尝试对单个 mysql 查询中的数据进行排序和显示

mysql - 如何使用多个值设置 Amazon RDS SQL_MODE

php - 从更改日期格式的文件加载数据

java - Spring Boot 与 MySql ManyToMany 关系无法持久保存到数据库,表示 "java.sql.SQLException: SQL String can not be NULL"

php - 如何根据不同的条件做两个MySQL SUM

php - 插入具有默认值的 Mysql 行

MYSQL 获取字母数字排序的最后一条记录

mysql - 根据国家和地区代码选择地区名称

Php 提高大数据循环的性能