请教一下后端同学,纯静态用数据库和不用数据库的区别? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
firhome
V2EX    程序员

请教一下后端同学,纯静态用数据库和不用数据库的区别?

  •  
  •   firhome 2019-12-30 16:40:16 +08:00 6562 次点击
    这是一个创建于 2111 天前的主题,其中的信息可能已经有所发展或是发生改变。
    打算用 node 把自己的一些 md 文档 生成 html。全部是纯静态网页。

    但是想加评论功能。但是又不想整数据库 (mysql),

    所以目前想,用户留言,请求接口。我在网站目录直接生成一个文件保存(根据一些规则保存不同)。

    然后再次访问,我接口再去查有没有 xx 规则下的某文件 来读取返回展示。

    请问一下 后端大佬们, 这个做法 和 接入数据库有什么区别呢? 效率 /速度 还是 管理方面?
    第 1 条附言    2019-12-30 17:43:29 +08:00
    因为我不是做后端的,只是思考了一下怎么简单怎么来。

    非常谢谢各位大佬的回复。
    44 条回复    2019-12-31 21:25:33 +08:00
    knva
        1
    knva  
       2019-12-30 16:43:11 +08:00
    都差不多,另外 个人备案站点不允许开启评论
    augustpluscn
        2
    augustpluscn  
       2019-12-30 16:44:12 +08:00
    区别就是你的数据管起来没有用数据库方便(逃)
    cz5424
        3
    cz5424  
       2019-12-30 16:45:56 +08:00 via iPhone
    @augustpluscn 正解,数据库多好,一般多一点的数据。文件存储不要跟数据库比效率,速度,管理
    bolide2005
        4
    bolide2005  
       2019-12-30 16:45:56 +08:00   1
    原理上肯定没问题啦,想当年数据库也是从文件进化而来的,你这样很“复古”,有 80 年代的风范。

    但是你需要考虑文件更新以及检索的便利程度,试想一下,你的网站要不要提供用户系统呢?用户的昵称你是直接和评论生成在一起储存在文件里,还是把用户信息放到一个单独文件里?那如果用户改名字了你得怎么更新呢等等等等这些问题。

    如果只是你目前提到的需求,比如用户只存储昵称并且没有用户系统的话,我觉得也还行
    pinyue
        5
    pinyue  
       2019-12-30 16:46:24 +08:00
    没区别。。你的结构设计好了,就是文件数据库了
    jinliming2
        6
    jinliming2  
       2019-12-30 16:51:52 +08:00 via iPhone
    了解一下数据库的发展史,你就知道了,你这个做法是很久以前没有数据库管理系统的年代的做法了
    hillwall
        7
    hillwall  
       2019-12-30 16:52:04 +08:00
    ztxcccc
        8
    ztxcccc  
       2019-12-30 16:53:30 +08:00
    你这种就用 SQLLite 吧,不用装
    Hstar
        9
    Hstar  
       2019-12-30 16:55:13 +08:00
    这就是最原始的数据库,简单的说,加入索引和事务就是一个现代数据库。
    iamverylovely
        10
    iamverylovely  
       2019-12-30 16:58:01 +08:00
    json 可以
    leishi1313
        11
    leishi1313  
       2019-12-30 16:58:58 +08:00 via Android
    你要用文件真不如数据库,SQLite 也挺好了。但如果需求是静态网站做评论的话,discuz 也挺好
    djFFFFF
        12
    djFFFFF  
       2019-12-30 17:00:33 +08:00
    你这就是最简单的数据库实现啊……
    Kilerd
        13
    Kilerd  
       2019-12-30 17:00:47 +08:00
    您再想想「有没有 xx 规则下的某文件」 这个东西像不像数据库里面的 raw data file ?
    rayhy
        14
    rayhy  
       2019-12-30 17:02:52 +08:00 via Android
    思路类似 staticman
    mikoshu
        15
    mikoshu  
       2019-12-30 17:10:18 +08:00
    不直接对接第三方的评论系统吗?
    wc951
        16
    wc951  
       2019-12-30 17:17:27 +08:00 via Android
    类似 hive 数仓不就是文件到数据库表的映射吗
    passerbytiny
        17
    passerbytiny  
       2019-12-30 17:18:01 +08:00
    别得不说,光后期额外增加新的“屏蔽关键词”,就能让你头疼死。
    whalegao
        18
    whalegao  
       2019-12-30 17:21:09 +08:00 via iPhone
    这就是一个最简单的数据库。
    diveIntoWork
        19
    diveIntoWork  
       2019-12-30 17:22:16 +08:00
    用内存数据库,写个脚本定时持久化就行了,每次服务器重启再从文件恢复
    shakaraka
        20
    shakaraka  
    PRO
       2019-12-30 17:22:18 +08:00
    恭喜你!!成功发明一个新数据库
    lemonTreeTop
        21
    lemonTreeTop  
       2019-12-30 17:33:38 +08:00
    你是想以文件的方式实现数据库的部分功能
    Yourshell
        22
    Yourshell  
       2019-12-30 17:35:12 +08:00
    挂个第三方的评论系统
    loading
        23
    loading  
       2019-12-30 17:35:26 +08:00 via Android
    楼主为啥不用评论服务,是不知道吗?
    kosmosr
        24
    kosmosr  
       2019-12-30 17:37:12 +08:00 via Android
    懒得自己弄数据库可以试试 LeanCloud
    zdnyp
        25
    zdnyp  
       2019-12-30 17:49:29 +08:00
    静态博客貌似都是用 json 文件做数据库的
    annielong
        26
    annielong  
       2019-12-30 18:11:11 +08:00
    文本数据库呗,早些时候小项目都是这样存的,但是复杂些的功能就不要想了
    JerryCha
        27
    JerryCha  
       2019-12-30 22:04:45 +08:00
    然后楼主造了个数据库
    virusdefender
        28
    virusdefender  
       2019-12-30 22:07:26 +08:00
    很多人博客没有评论是因为没有服务器,比如放在了 github pages 上,而你这有服务器,直接上一个 sqlite 就好了。
    zjsxwc
        29
    zjsxwc  
       2019-12-30 22:07:49 +08:00 via Android
    我见过,不用数据库,把评论、用户密码登都保存在不同 json 文本里的
    luozic
        30
    luozic  
       2019-12-31 02:27:59 +08:00 via iPhone
    sqlite,或者云盘里面的 json 啥文件也行
    FindHao
        31
    FindHao  
       2019-12-31 03:27:34 +08:00 via Android   1
    加 disqus 吧。国内默认无法访问,但是这样可以过滤掉一大批没有开代理的用户。
    busfool
        32
    busfool  
       2019-12-31 04:59:06 +08:00 via Android
    逆天而行,很复古。十多年前有这种开源程序。
    redeemer1001
        33
    redeemer1001  
       2019-12-31 07:03:58 +08:00
    推荐 sqlite 我做的十几人用的小网站就用这个 比自己写文件储存方便太多
    SuperMild
        34
    SuperMild  
       2019-12-31 07:18:20 +08:00 via iPhone
    可以是可以,但要注意,这不是简单化,而是复杂化。

    我自己最近就有个小玩意儿这样搞,累死了,要注意很多小问题。我只能说,很好玩,但不如 sqlite 简单方便。
    Ahri
        35
    Ahri  
       2019-12-31 07:58:03 +08:00
    你的实现会有 race condition。
    shunfy
        36
    shunfy  
       2019-12-31 08:02:52 +08:00 via iPhone
    怎么排序?怎么关键字搜索?
    msg7086
        37
    msg7086  
       2019-12-31 08:22:18 +08:00
    文件系统本来就是一种数据库。
    Lockeysama
        38
    Lockeysama  
       2019-12-31 09:11:54 +08:00
    Hexo 不香吗?
    itskingname
        39
    itskingname  
       2019-12-31 09:26:32 +08:00
    用 leancloud 解决你的问题。
    mywaiting
        40
    mywaiting  
       2019-12-31 09:32:53 +08:00
    纯静态的站点可以用 disqus 这样的评论服务,国内的站点可以找个 gitalk 这样 git issue 用法的评论系统
    daozhihun
        41
    daozhihun  
       2019-12-31 09:36:52 +08:00
    最简单的事直接改 html 的源码,每评论一条里面插一个 div,哈哈哈哈
    CodeXx
        42
    CodeXx  
       2019-12-31 09:38:28 +08:00
    SQLite 一把唆
    abcbuzhiming
        43
    abcbuzhiming  
       2019-12-31 10:07:27 +08:00
    你这就是自己实现的文件数据库不过性能是大概率比不上别人玩了十几年的
    angsheng
        44
    angsheng  
       2019-12-31 21:25:33 +08:00
    楼主还可以把回帖都存在变量里
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2439 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 15:33 PVG 23:33 LAX 08:33 JFK 11:33
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86