关于数据库的几个建议

本贴最后更新于 384 天前,其中的信息可能已经渤澥桑田

等了两年,数据库终于出来了,感谢两位大神。正在考虑把个人笔记从 notion 搬过来。现在同时满足本地化、端对端加密、有数据库(属性视图)、块属性、正反链的笔记应用,思源是独一份。更不要说还有 sql,还有一个块可以加入多个数据库的设置。

试用数据库功能后,有几点小建议:

  1. 块加入数据库后,点该块右上角的数据库图标,会跳出块属性弹窗,其中“数据库”标签页上,能否加入一个“移出/删除”按钮,将该块在此数据库中的那行记录删除。因为可以在此处加入,就应该在可以此处删除。否则将来要到数据库的成百上千行里去找到此块的记录再删除, 太麻烦了。

  2. 块加入数据库后,将此块移动到别的文档中,数据库的连接是可以跟过去的。但是剪切此块粘贴到别的地方,数据库连接就丢了。希望能有一个办法,能让块带着数据库连接剪切粘贴。

  3. 数据库的单选列和多选列,选项无法自定义排序。选项顺序其实是有内在逻辑在里面的,没有这个排序功能,感觉非常不顺手。

  4. 在 notion 的 database 里面,我常把关联当成多选来用。因为很多情况下,选项本身有扩展信息要记录在另一张表里。现在关联的选项也是无法自定义排序的。可否用这种办法来实现?将数据库中的列名,比如说 “ChoiceOrder” 作为保留字,如果用户在数据库里加上了这一列,作为关联的选项时,就按照用户在这一列中自己填的整数来排序。

  5. 我有在手机上写笔记写任务汇总的需求,现在移动端里数据库界面的列宽实在是太宽了,一列就占掉了几乎所有屏幕。能否在视图设置中每个属性设置面板后面加一个整数的输入框,让用户自己设定某一列/属性的列宽。这比在界面上去实现拖拽调整要方便的多。

  6. 能否实现块在数据库中的属性可用于 sql 查询?因为从逻辑上来说,数据库中的属性也属于块/节点的信息,而且是结构化的核心的信息,是最适宜,也最有可能被用到的 sql 查询/筛选的依据。

    谢谢!

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    25043 引用 • 103194 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 块加入数据库后,点该块右上角的数据库图标,会跳出块属性弹窗,其中“数据库”标签页上,能否加入一个“移出/删除”按钮,将该块在此数据库中的那行记录删除。

    没有按钮也可以删啊:

    image.png

    1 回复
  • 块加入数据库后,将此块移动到别的文档中,数据库的连接是可以跟过去的。但是剪切此块粘贴到别的地方,数据库连接就丢了。希望能有一个办法,能让块带着数据库连接剪切粘贴。

    只能用鼠标拖拽。

    相关 issue:Issue #6807 · siyuan-note/siyuan

    1 回复
  • 数据库的单选列和多选列,选项无法自定义排序。选项顺序其实是有内在逻辑在里面的,没有这个排序功能,感觉非常不顺手。

    下个版本 数据库单选字段支持按选项顺序排序

  • san11pk via Android
    作者

    看了那些讨论,没太明白。粘贴复制和重复都有 id 的问题,这个可以理解。剪切和第 1 次粘贴不应该有问题啊。至少有一个解决方案,用户可以用一个容器块包裹住你要复制的内容,然后剪切复制这个容器块,容器块本身可以换新 id,但是对里面内容块的链接换一下就好了。相当于编程里的 shallow copy,就是比较麻烦,要抄一遍指针。

    1 回复
  • san11pk via Android
    作者

    “移出”数据库,我是指这个块在数据库里的那一行记录,整个删除。

    2 回复
  • 问题在于,可以在浏览器、本地应用、其他设备网络伺服打开同一个思源,这些地方还都能进行撤回操作,假如你剪切粘贴了一个块到一个新的页面后,在原来的页面进行 ctrl+z 撤回,它该怎么知道 id 重复了呢?

    这个问题的本质,其实是多线程竞争写入还要负责撤回啊。

  • 这个之前考虑过,暂时不加了,请看 Issue #10581 · siyuan-note/siyuan

    2 回复
  • d 大感觉没有不加删除的理由呀,只需要”删除“,也不需要“添加”,自定义属性能直接删,数据库咋不能删呢,感觉一个道理嘛。现在还要专门跑到数据库界面打字搜索,好麻烦。

    1 回复
  • 删了不好加回来的。

    2 回复
  • 是说无法通过 ctrl+z,撤销删除吗?这个不重要吧,通过快捷键再加一下不就行了

    2 回复
  • 这个删了是不是也不好加回来?

    image.png

    1 回复
  • 不小心删除了数据还撤销不了那就完蛋了。

    现在的数据库还有些操作是不能撤销的。

  • 可能是撤销不了的。

    1 回复
  • 撤销是一方面,你说的快捷键是?

    1 回复
  • 那要考虑暂时移除这个删除吗?我一开始以为是用来删除这个块在那一列的属性的,结果试了一下才发现是删除整个列的,感觉把删除操作放在这里有点危险,用户容易被误导。

    1 回复
  • 就是 添加到数据库,之前填充的值自己再填一下呗

    1 回复
  • 等再收集反馈看看,加这个我们得慎重点。

  • 列没有问题,和数据库操作是一致的。

    1 回复
  • 但是这个会把一整列都删除,同时无法撤回,我觉得这比删除一整行更严重。

    既然不添加删除行的按钮,那么也不应该存在删除列的按钮。

    1 回复
  • zxhd86 1

    赞同,删除整个列的操作太危险了,起码需要一个提示框确认是否删除。

    1 回复
  • 这个我也觉得需要 @Vanessa

    1 回复
  • san11pk via Android
    作者

    @88250

    麻烦您给我一个反馈,确认这些功能在不在路线图上,好吗?

    1. 关联选项的自定义排序
    2. 数据表界面的列宽自定义设置
    3. sql 查询可用数据库属性做条件

    另外,刚发现两个需求:

    1. 数据库的属性顺序(列的次序)没有办法调整, 能否在视图设置中加入这个功能

    2. 数据库日期列有缺省值 now, 新增行里该属性虽然没有填写,显示为空白,但用模板列引用,其值为当前日期而不是“1970-01-01”。 要到日期属性里去清空,才能引用出来“1970-01-01”。 可否如同 notion flowus 那样,对模板引用空白属性做一个判断?if exist {}

      谢谢了

    1 回复
  • 你好,

    1. 如果需求多的话会考虑
    2. 可以拖动
    3. 暂时没有计划
    4. 可以拖动
    5. 应该可以自行在模板中判断

    谢谢。

请输入回帖内容 ...

推荐标签 标签

  • Flume

    Flume 是一套分布式的、可靠的,可用于有效地收集、聚合和搬运大量日志数据的服务架构。

    9 引用 • 6 回帖 • 653 关注
  • 叶归
    5 引用 • 16 回帖 • 7 关注
  • OnlyOffice
    4 引用 • 21 关注
  • sts
    2 引用 • 2 回帖 • 226 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 28 关注
  • frp

    frp 是一个可用于内网穿透的高性能的反向代理应用,支持 TCP、UDP、 HTTP 和 HTTPS 协议。

    20 引用 • 7 回帖 • 4 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    161 引用 • 306 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 689 关注
  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    25043 引用 • 103194 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 165 关注
  • 分享

    有什么新发现就分享给大家吧!

    247 引用 • 1794 回帖 • 1 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    245 引用 • 1338 回帖
  • 大疆创新

    深圳市大疆创新科技有限公司(DJI-Innovations,简称 DJI),成立于 2006 年,是全球领先的无人飞行器控制系统及无人机解决方案的研发和生产商,客户遍布全球 100 多个国家。通过持续的创新,大疆致力于为无人机工业、行业用户以及专业航拍应用提供性能最强、体验最佳的革命性智能飞控产品和解决方案。

    2 引用 • 14 回帖
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 1 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 54 回帖 • 8 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    28 引用 • 197 回帖 • 32 关注
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • TextBundle

    TextBundle 文件格式旨在应用程序之间交换 Markdown 或 Fountain 之类的纯文本文件时,提供更无缝的用户体验。

    1 引用 • 2 回帖 • 82 关注
  • Word
    13 引用 • 40 回帖
  • 黑曜石

    黑曜石是一款强大的知识库工具,支持本地 Markdown 文件编辑,支持双向链接和关系图。

    A second brain, for you, forever.

    21 引用 • 204 回帖 • 1 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 31 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 679 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 720 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 175 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    432 引用 • 1250 回帖 • 598 关注