【发布时间】:2010-09-08 14:47:29
【问题描述】:
我正在建立一个网站,用户可以在其中执行各种操作,并且他们会获得可变数量的“积分”或“徽章”来执行特定操作。无论用户执行哪种类型的操作,都必须存储某些数据,例如用户 ID、操作类型、时间戳、当前总积分和授予的任何徽章。但根据用户执行的操作类型,必须存储一些特定于操作类型的数据,包括 BLOB 中的图像数据。
一种选择是在操作表中包含所有操作类型的所有字段。不幸的是,这些列中的每一个都只会存储与适当操作类型匹配的一小部分操作的数据。所以我会用这种方法有大量的空字段(包括 BLOB)。
除了上述操作表之外,另一种选择是为每种操作类型添加一个表。每个动作类型表都有一个指向动作表中相关动作的外键。这将使操作表更好地组织,但它引入了操作表与操作类型表不同步的可能性。我还想知道,每当我从操作表中获取数据时,必须对不同的操作类型表执行大量连接对性能的影响。
最后,我优化的是速度而不是大小。我应该如何解决这个困境?
【问题讨论】:
标签: mysql database-design join schema