然后我们处理用户输入的路径,考虑到不强制规定配置文件的路径写法(合法即可),我们使用PathBuf来做一个可变路径,拼接完成后再转换为字符串类型。 但是!我们无法直接把PathBuf类型转换为字符串型,那是因为并不是所有路径都是UTF-8编码的,但在Rust中,字符串始终是有效的UTF-8。但是我们可以将其转换为OsString类型。再尝试将其转为String类型,如果出错则返回之前定义的那个错误。
用户系统?这个词会让你想到什么,数据库吗?但是我们正在写数据库啊喂。所以我们只需要用最原始的方式做一个用户系统。 首先,我就着KISS(Keep It Simple, Stupid )。因为我使用的方法是最简单的json文件,单纯的把用户信息写进去取出来。
从性能上说,关系型数据库的结构是一张表,这导致了某些本来只需统计某列的场景,也不得不把整行读入,这个结构在高并发下会导致更高的io。而关系型数据库的结构决定了它的全文搜索功能弱,若在巨量数据下使用模糊搜索匹配关键字等功能会容易造成慢查询。 从可拓展性上说。首先是,列,在关系型数据库你必须事先为要储存的数据建立一个列,要是你要在关系型数据库修改列可是十分甚至九分的痛苦,在数据量大而复杂的情况下会更明显;其次,是显式的,各种各样的join,它可能是关系型数据库最麻烦的地方之一,你得建立错综复杂的数据,然后现在要你去拓展/修改一个表?好吧,这简直生不如死。