2012-02-29 94 views
2

我有一个系统,人们会上传一些东西,然后一个链接就可以识别上传的文件并显示给其他用户。每个文件都有自己的页面,他们将有一个评论框。现在我已经知道如何创建PHP脚本和SQL,我只有一个问题。会有什么结果?将每个文件的所有评论存储在一行中,并为每个新评论添加一个分隔符?或者为每个评论输入创建一个新行,但对文件具有相同的引用?我宁愿如果每个评论在SQL中有自己的行,但它可以很容易地成长为每天数千条,我不知道这是否有效。PhP SQL评论系统

这两种方法哪一种效率最高?

回答

1

为每个评论添加一个新行会更有意义。你可以在注释表中有一个列,这个列将是FileID并且可以很容易地过滤结果。虽然你会有人对它进行评论,并且会添加行,但它比单行更有效率。特别是考虑到你可能没有足够的空间用于单行数千条评论!

如果你真的担心有太多评论,你应该看看像MongoDB或Cassandra这样的NoSql解决方案。这些系统专门用于处理大量插页(即:新评论)。

1

如果(每个)注释长度是有限的,那么请分别使用VARCHAR类型的行。如果您为每个文件的所有评论选择单行,那么您无法事先估计长度评论,并且您必须声明它为TEXT类型,这意味着数据将存储在单独的文件中,这会影响检索时间负。而且,高级查询和数据挖掘将更容易,并且分开的行。

另外单独的行将符合一些高阶标准化的要求。

0

确保评论具有设置的最大长度,并从数据库中获得与VARCHAR类型的行。 建议不要使用将数据保存在一个字段中,并且如果要在后面的阶段(日期/由/ etc发布)或甚至在查询信息时保存有关注释的信息,将会非常麻烦。

将它们另存为单独的表格并引用uploadId。