V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
firhome
V2EX  ›  程序员

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

  •  
  •   firhome · 2019-12-30 16:40:16 +08:00 · 5816 次点击
    这是一个创建于 1551 天前的主题,其中的信息可能已经有所发展或是发生改变。
    打算用 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
    用内存数据库,写个脚本定时持久化就行了,每次服务器重启再从文件恢复
    wunonglin
        20
    wunonglin  
       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   ·   我们的愿景   ·   实用小工具   ·   2874 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 11:17 · PVG 19:17 · LAX 04:17 · JFK 07:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.