关于数据库的几个建议

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

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

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

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

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

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

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

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

    谢谢!

  • 思源笔记

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

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

    19811 引用 • 75865 回帖

相关帖子

欢迎来到这里!

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

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

    没有按钮也可以删啊:

    image.png

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

    只能用鼠标拖拽。

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

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

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

  • san11pk
    作者

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

    1 回复
  • san11pk
    作者

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

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

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

  • 88250

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

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

    1 回复
  • 88250

    删了不好加回来的。

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

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

    image.png

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

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

  • 88250

    可能是撤销不了的。

    1 回复
  • 88250

    撤销是一方面,你说的快捷键是?

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

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

    1 回复
  • 88250

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

  • 88250

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

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

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

    1 回复
  • zxhd86 1

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

    1 回复
  • 88250

    这个我也觉得需要 @Vanessa

    1 回复
  • san11pk
    作者

    @88250

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

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

    另外,刚发现两个需求:

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

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

      谢谢了

    1 回复
  • 88250

    你好,

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

    谢谢。

请输入回帖内容 ...

推荐标签 标签

  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    148 引用 • 257 回帖
  • 阿里巴巴

    阿里巴巴网络技术有限公司(简称:阿里巴巴集团)是以曾担任英语教师的马云为首的 18 人,于 1999 年在中国杭州创立,他们相信互联网能够创造公平的竞争环境,让小企业通过创新与科技扩展业务,并在参与国内或全球市场竞争时处于更有利的位置。

    43 引用 • 221 回帖 • 200 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 59 关注
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 50 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    51 引用 • 37 回帖 • 3 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    165 引用 • 407 回帖 • 514 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 643 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 356 关注
  • danl
    89 关注
  • 尊园地产

    昆明尊园房地产经纪有限公司,即:Kunming Zunyuan Property Agency Company Limited(简称“尊园地产”)于 2007 年 6 月开始筹备,2007 年 8 月 18 日正式成立,注册资本 200 万元,公司性质为股份经纪有限公司,主营业务为:代租、代售、代办产权过户、办理银行按揭、担保、抵押、评估等。

    1 引用 • 22 回帖 • 703 关注
  • Mac

    Mac 是苹果公司自 1984 年起以“Macintosh”开始开发的个人消费型计算机,如:iMac、Mac mini、Macbook Air、Macbook Pro、Macbook、Mac Pro 等计算机。

    164 引用 • 594 回帖 • 1 关注
  • V2EX

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 400,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    17 引用 • 236 回帖 • 391 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 524 关注
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    7 引用 • 30 回帖 • 446 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    14 引用 • 7 回帖
  • SVN

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

    29 引用 • 98 回帖 • 689 关注
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 19 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 53 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 611 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    28 引用 • 66 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 711 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖 • 1 关注