我正在创建我的第一个Web应用程序 - 一个非常简单的在线文本编辑器。 我需要做的是找到存储基于文本的文件的最佳方法 - 其中很多。 这些文本文件的大小可以超过10,000个单词(文本单词而不是计算机单词。)本质上我希望文本文档的大小是无限的。
我正在考虑将文本文件存储在我的MySQL数据库中 - 但是认为有更好的方法。 相反,我正计划将基于XML格式的文本文件存储在我服务器上的目录中。 数据库中的行定义基于xml的文本文件的名称以及创建文本的用户以及基本元数据。 使用V4 GUID生成器生成ID,该生成器为文本提供id并将文本存储在我的服务器上的“/ store”目录中。我的服务器中的文本定义包含此ID,我正在开发的Android应用程序通过检索文本定义然后使用文本定义中的GUID将文本下载到本地设备来获取文本文件的内容。
我只是认为这是一项拙劣的工作?我怎样才能改进这个系统?
存在GUID冲突的情况。 我不希望这种情况发生。 “苗条”的可能性还不够好 - 我需要确保在GUID冲突中绝对没有机会。 我计划在存储具有特定id的文本之前检查数据库中具有相同id的文本 - 但是我相信在我的数据库中有超过20,000条文本,这将花费很长时间并在服务器上产生不必要的压力。
如何使GUID安全?
GUID发生碰撞时会发生什么?
服务器后端将用PHP编写。
答案 0 :(得分:4)
你在这里有几个问题,所以我会尽力回答这些问题。
带GUID的XML是最好的方法吗?
“最佳”通常是主观的。这当然是一种方法,但你可能会增加不必要的开销。如果它只是您要存储的文本,为什么不将它放在带有varchar(MAX)
的SQL中?
GUID冲突是否可能?
是的,但发生这种情况的可能性很小。 Ridiculously small.还有许多值得担心的问题。
如何使GUID安全?
不要担心他们。
当GUID发生碰撞时会发生什么?
这取决于您如何使用它们。在这种情况下,存储在GUID指示的位置的旧数据可能会被新数据覆盖。
答案 1 :(得分:2)
嗯,我不知道id是否使用guid我可能只是在db表上使用auto_increment键并命名这样的文件,因为除非你从数据库中删除了记录而没有清理文件系统,否则它们将始终是唯一的。我不知道GUID是否是android方面的要求。
答案 2 :(得分:2)
使用MySQL存储文档没有错!
什么是将它们存储在XML中为您提供?添加其他格式图层只会增加读取和格式化时的处理时间。
将它们作为文件放置在磁盘上与将它们存储在RDBMS中没有什么不同,从长远来看可能会导致您进一步发生问题。 (记住文件访问,磁盘搜索,锁定,竞争条件)。