将表数据移动到另一个表字段

时间:2010-07-01 17:33:35

标签: database-design database

有投票支持照片的任务。因为用户只能投票一次照片,我应该保存。我计划不要为保存用户ID制作单独的表,而是将它们保存在以任何分隔符分隔的blob字段中的照片表中。 你怎么看待这种做法?有任何隐患吗? 我看到这样的结构,我将减少查询和连接的数量。

3 个答案:

答案 0 :(得分:1)

不要这样做。你正在尝试的并不罕见,但它几乎总是不明智的。制作另一张表来存储每位用户每张照片的投票数。您正在(假设)假设减少连接并将此数据存储在blob字段中将导致性能优势,而不是将投票存储在表中,这非常(非常)不可能。

一些想法:

  1. 在执行此操作时,如果您要查看任何投票,则需要为特定照片带回每次投票。
  2. 这是腐败的秘诀。在此字段中存储用户ID会破坏在投票上维护外键的能力。换句话说,如果修改或删除了用户记录,则无法更新投票记录。

答案 1 :(得分:0)

我认为您可能遇到的问题是可扩展性问题。如果这个照片投票站点变得非常流行,这些blob会变得非常大,并且会对你的服务器端处理语言(php,asp等)产生更大的负担。

我的一般经验法则 - 数据库是由程序员设计的,比我做得好,做一件事,做一件好事 - 处理数据。您对数据的处理很可能不如数据库可以做的那样有效。换句话说,使用连接,而不是自己进行后处理。

答案 2 :(得分:0)

带分隔符的blob字段是您可以存储数据的绝对最差方式之一。使用外键和外键索引将其正确存储在子表中。