Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

编辑器顶部添加数据库属性面板 #11371

Open
Jiangshuon opened this issue May 13, 2024 · 101 comments
Open

编辑器顶部添加数据库属性面板 #11371

Jiangshuon opened this issue May 13, 2024 · 101 comments
Assignees

Comments

@Jiangshuon
Copy link

Jiangshuon commented May 13, 2024

最终方案:

#11371 (comment)


数据库属性面板

In what scenarios do you need this feature?

列很多的情况下,无法一眼看到所有列,需要不断shift+滚轮左滑右滑查看,不方便浏览和编辑

希望增加编辑窗

image

image

Describe the optimal solution

可采用悬浮窗的形式

点击不同的行,编辑窗的内容自动改变

Describe the candidate solution

也就是想把这个页面固定下来,点击不同行时,这个界面也能自动切换,不过这样没有主键引用的行怎么办呢?

image

No response

Other information

No response

@hqweay
Copy link

hqweay commented May 13, 2024

https://dbeaver.com/docs/dbeaver/Data-View-and-Format/#table-vs-record-views

数据有很多列时会很有用……操作和实现可以参考下这个

@5kyfkr
Copy link

5kyfkr commented May 13, 2024

#11113
属性界面分离的我也提了,感觉其实相当于增加一个属性面板,像反链面板一样能固定到侧边栏,那样就最完美了,这样快速查看的需求就能一起解决了

@Jiangshuon
Copy link
Author

Jiangshuon commented May 13, 2024 via email

@5kyfkr
Copy link

5kyfkr commented May 13, 2024

思源中不光是文档,普通的块也可以加到数据库库,不是块也可以… 属性面板怕是只适用于文档 相比notion、wolai,思源情况比较复杂

是的,我觉得可以默认显示文档的属性,然后点击块右上角关联的数据库的时候在显示对应的属性,或者像你这个场景,点击数据库主键显示对应主键的属性

@TCOTC
Copy link
Contributor

TCOTC commented May 13, 2024

感觉跟这个需求有部分交集:快速打开数据库主键绑定文档的属性面板 · Issue #11284 · siyuan-note/siyuan

绑定块的数据库条目显示属性面板,未绑定块的数据库条目就只需要显示数据库属性

@TCOTC
Copy link
Contributor

TCOTC commented May 13, 2024

列很多的情况下,无法一眼看到所有列,需要不断shift+滚轮左滑右滑查看,不方便浏览和编辑

还有列被隐藏的情况下,列是无法编辑的,就需要有个面板来编辑

@5kyfkr
Copy link

5kyfkr commented May 13, 2024

我觉得数据库属性面板还是得单独弄一个出来单独放到侧边栏,现在藏得有点深,想实现修改对应块或文档的数据库属性如下:
1.在数据库中找到相关行或列,修改。
2.点击文档或块的右上角进入数据库属性界面,修改。
3.shift+单击块标进入属性->切换至数据库页面,修改。
后两种方案都不能算方便,第2种主要增加了a.找到右上角块标;b.点击进入属性界面 这两个操作。第三种需要记忆快捷键位置并且还要切换选项卡。
其实属性面板就相当于反链面板的作用了,在后面熟悉了数据库的特性后会越来越常用,这也是notion等设计到文档上方展示的原因,思源因为块也有数据库属性,所以不能直接显示在文档上方,但还是建议能在侧边栏显示,只是多一个展示位置,现有在属性里的数据库展示同时保留,额外在侧栏增加个数据库属性展示区域,这样才能更方便对数据库属性的编辑。

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

@5kyfkr @88250
数据库条目增加侧边栏查看属性这个建议可以,不过我个人会更倾向于添加一个展开按钮(比如flowus这样)
Clip_2024-05-14_20-29-12

具体设计

  • 已绑定块的条目(不管绑定是文档还是普通段落块),点击展开则向右分屏聚焦到该块,在块内容上方自动展开显示数据库属性(只显示当前数据库属性,不显示其他数据库属性,只在块右上方显示所属数据库),然后显示块内容。如果打开的块内有其他块也绑定了数据库,依然保持现在的设计,不显示数据库属性,只在右上方显示所属数据库。
  • 如果条目未绑定块,依然和已绑定块的交互一致,只是块内容那个区域显示一个按钮,点击则是目前块引新建文档的功能,可以直接新建文档,也可以绑定现有文档

Clip_2024-05-14_20-30-08
ps:这个设计应该可以通过分屏+聚焦来实现,只需要在聚焦的块上方显示数据库属性就行

Clip_2024-05-14_20-38-34

考虑上面的展开数据库属性的方案可能一致性不好,数据库打开的页面才显示数据库属性,正常打开则没有(条目未绑定块不存在这个问题)
另一个补充的特性应该是,显示数据库属性不是非得从数据库展开,只要这个块聚焦,原来右上方的所属数据库就显示一个展开按钮,点击则可以展开数据库属性(文档块就是正常状态就显示数据库属性展开按钮),不必非要在数据库那里才能展开数据库属性。退出聚焦则消失。即面包屑所在位置的块有所属数据库我才可以点击展开,其他位置的块就没有按钮展开。如果这个块属于多个数据库,只能一次展开显示一个数据库(感觉同时展示所有数据库没太必要,而且容易占太多空间)

我觉得这样既能给块加上数据库属性面板(从notion过来的人,应该都挺需要这个功能的,而且列一多,这个功能就很有必要性),也符合现有思源的设计理念。

Clip_2024-05-14_21-03-05

@TCOTC
Copy link
Contributor

TCOTC commented May 14, 2024

能直接展开的话感觉交互更好

更新可以移到右键菜单里

image

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

能直接展开的话感觉交互更好

更新可以移到右键菜单里

image

确实更新不是频繁的操作,如果误触还难撤回

@88250 88250 changed the title 希望增加数据库表格编辑窗 数据库属性面板 May 14, 2024
@88250
Copy link
Member

88250 commented May 14, 2024

@Achuan-2 目前考虑的设计是:

  • 添加一个新的停靠栏面板 - 数据库属性面板
  • 编辑器中的数据库表格视图行(或者以后其他视图的焦点所处主键)无论是否绑定了块,这个面板就竖向显示这一行的所有字段(某些字段除外,比如行号),和现在的 属性面板 - 数据库 效果类似,支持编辑

@88250 88250 changed the title 数据库属性面板 Add the database attribute dock panel May 14, 2024
@88250 88250 changed the title Add the database attribute dock panel The database attribute dock panel May 14, 2024
@88250 88250 changed the title The database attribute dock panel Add the database attribute dock panel May 14, 2024
@TCOTC
Copy link
Contributor

TCOTC commented May 14, 2024

[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284

@5kyfkr
Copy link

5kyfkr commented May 14, 2024

[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284

内置和自定义属性也要吗,这两个应该不常用吧,数据库属性显示在侧栏的时候选中对应的主键行就能看到数据库属性了

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

@Achuan-2 目前考虑的设计是:

  • 添加一个新的停靠栏面板 - 数据库属性面板
  • 编辑器中的数据库表格视图行(或者以后其他视图的焦点所处主键)无论是否绑定了块,这个面板就竖向显示这一行的所有字段(某些字段除外,比如行号),和现在的 属性面板 - 数据库 效果类似,支持编辑

停靠栏面板有如下问题

  1. 是否只有点击数据库的某一行才能显示停靠栏,而不支持显示任意块的数据库属性,这样子未必合适,也不符合那些希望直接在文档显示数据库属性列表的需求,到时候依然会有一堆人提需求。
  2. 像反链、大纲都是文档级别的,文档树、标签、书签是全局的汇总,突然添加一个只针对某个块的信息显示停靠栏是否合适,这个停靠栏在大多数情况用不到,需要我找到一个数据库才能用上是否合适?
  3. 停靠栏显示属性内容,需要编辑查看时,可能就需要把停靠栏拉宽,当不用的时候,如果嫌弃占用空间又要拉短,有些麻烦,特别是小屏电脑以及平板使用,使用体验估计不会太好。

@5kyfkr
Copy link

5kyfkr commented May 14, 2024

  1. 是否只有点击数据库的某一行才能显示停靠栏,而不支持显示任意块的数据库属性

光标在普通文档里的任意块里面,或者光标在文档标题,就能对应看到块或文档的数据库属性

  1. 像反链、大纲都是文档级别的,文档树、标签、书签是全局的汇总,突然添加一个只针对某个块的信息显示停靠栏是否合适,这个停靠栏在大多数情况用不到,需要我找到一个数据库才能用上是否合适?

如第一点,可以在任意块看到对应关联属性,不局限于数据库的主键点选

  1. 停靠栏显示属性内容,需要编辑查看时,可能就需要把停靠栏拉宽,当不用的时候,如果嫌弃占用空间又要拉短,有些麻烦,特别是小屏电脑以及平板使用,使用体验估计不会太好。

这个应该没什么好办法了,只能看界面优化的程度了,如果分离弹窗又会显得复杂了,或者能支持你说的那种单独页签展示出来,那应该就能解决

@88250
Copy link
Member

88250 commented May 14, 2024

是否只有点击数据库的某一行才能显示停靠栏,而不支持显示任意块的数据库属性

在块上的时候也可以显示,类似属性面板 - 数据库。

像反链、大纲都是文档级别的,文档树、标签、书签是全局的汇总,突然添加一个只针对某个块的信息显示停靠栏是否合适,这个停靠栏在大多数情况用不到,需要我找到一个数据库才能用上是否合适?

反链也是块级的,在数据库行和块上都应该可以显示。

停靠栏显示属性内容,需要编辑查看时,可能就需要把停靠栏拉宽,当不用的时候,如果嫌弃占用空间又要拉短,有些麻烦,特别是小屏电脑以及平板使用,使用体验估计不会太好。

无论如何显示(浮窗或者现在的任何一个面板)都有这个问题,能拉宽度就可以了。

@88250
Copy link
Member

88250 commented May 14, 2024

[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284

目前浮窗+点击数据库角标已经比较快捷了,这个需求再缓缓吧。

@5kyfkr
Copy link

5kyfkr commented May 14, 2024

停靠栏显示属性内容,需要编辑查看时,可能就需要把停靠栏拉宽,当不用的时候,如果嫌弃占用空间又要拉短,有些麻烦,特别是小屏电脑以及平板使用,使用体验估计不会太好。

无论如何显示(浮窗或者现在的任何一个面板)都有这个问题,能拉宽度就可以了。

有没可能像下图右侧这样再加个分离出来到页签里类似文档显示的功能,那应该就能解决,或者跳转到现在的属性界面,然后让属性界面能浮动,那样应该也行,不过那应该是后续优化的问题了
image

@88250
Copy link
Member

88250 commented May 14, 2024

停靠栏面板短期内不会大改了,也许后面会考虑支持浮动模式和窗口模式。

@TCOTC
Copy link
Contributor

TCOTC commented May 14, 2024

[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284

内置和自定义属性也要吗,这两个应该不常用吧,数据库属性显示在侧栏的时候选中对应的主键行就能看到数据库属性了

我提这个 issue 本来的需求就是编辑自定义属性和内置属性,编辑数据库属性只是附带的

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

目前其他停靠栏我几乎不会调宽度,数据库属性主要一定是两列结构,一旦列很多,多选列选项多了,用了文本列,宽度估计会有点吃紧。

如果聚焦块支持展开数据库属性面板,即可以在浏览整个数据库时查看各项的所有属性(可以支持分屏自动聚焦展开数据库属性),又可以在浏览文档和块时,聚焦点击展开数据库信息,我觉得这个交互是更好些的。而不需要我找到一个块,点击,然后我还要再多打开一个停靠栏查看,那为什么我不直接用shift+click查看块属性面板呢,从这个角度来说,就算停靠栏支持显示块和文档的数据库属性,意义不是很大,主要意义在于横向显示数据库每行的属性。

我这个方案对查看文档的数据库属性面板体验好,虽然块的数据库属性面板查看不方便,但是本来这个需求就不如文档快捷查看数据库属性,只要数据库分屏查看项目,自动展开就还好,因为大多数人查看段落块的数据库属性估计更多通过数据库来看的,因为这些块主要靠数据库来维护,平常是零散在各处的

此外,多一个停靠栏还有一个问题,我如果喜欢分屏查看数据库的项目,左边页签是整个数据库,右分屏一个文档,如果想看这个文档的数据库属性,我又要打开一个停靠栏,就很奇怪,占用空间。

思源要做方便查看块的数据库属性,还是建议放在块前,和其他软件差别太多一定是会被人诟病的

@88250
Copy link
Member

88250 commented May 14, 2024

我们得考虑普通块的查看(不只是文档块的),所以放在编辑器顶部的方案对于思源来说不通用。

放在侧栏是比较通用的做法,Notion-like 基本都有侧栏打开,这个还是比较符合用户习惯的。

@Achuan-2
Copy link
Member

Achuan-2 commented May 14, 2024

我觉得notion like的侧栏打开逻辑是分屏打开而不是dock栏打开,所以我这个方案才添加了展开按钮,点击自动分屏,右侧打开块和自动展示块数据库属性
我这个方案的思路是聚焦块才支持展开数据库属性,所以对每个块处理是统一的,并没有搞特殊,只不过文档块打开就相当于直接聚焦了,更方便查看而已。普通块的查看虽然聚焦打开不方便,也可以shift+click打开属性面板查看呀,或者直接悬浮所属数据库弄出浮窗查看,大多数人需要数据库属性面板直接显示而不是放在属性面板里,应该主要都是希望文档显示吧。为什么希望文档显示数据库属性呢,因为一些文档的信息放在数据库里了,比如链接、作者、一些总结,我既然在数据库写了,就没那么想还在文档再重复写一遍了。
建议开发者还是斟酌下,不要为了普通块的数据库属性查看让文档的数据库属性查看麻烦,捡了芝麻丢了西瓜。

@Jiangshuon
Copy link
Author

@Achuan-2 感觉没理解到

假设A文档中有数据库块B,B中有行c1,c2,A文档中还有块D,A文档被添加到了数据库E,块D被添加到了数据库F

点击A文档,侧栏显示A的属性(数据库E)

光标选中B中c1行,侧栏显示c1行的属性(数据库B)

光标选中块D,侧栏显示块D的属性(数据库F)

@zxhd863943427
Copy link
Contributor

数据库中的行就两种,绑定块和非绑定块,这个基础不太可能变了,不用考虑其他形式。

从数据储存上看,目前只是使用了一个Block类型进行划分,简单地增加几个类型,前端新增对应的显示方式和打开方式即可,这方面应该不算太难。

@5kyfkr
Copy link

5kyfkr commented May 17, 2024

数据库中的行就两种,绑定块和非绑定块,这个基础不太可能变了,不用考虑其他形式。

从数据储存上看,目前只是使用了一个Block类型进行划分,简单地增加几个类型,前端新增对应的显示方式和打开方式即可,这方面应该不算太难。

就思源内部的元素来说,起码还可以考虑闪卡、资源文件(pdf、图片、视频和其他)、pdf注释这几种主键。更广泛来说,还应该允许有插件拓展主键类型,或者把现有的列类型(数字、单选、多选、链接)作为主键。

思源首先是笔记软件,主要的载体是文本,数据库解决了笔记和块的分类整理,并且能添加对应的资源列,把图片pdf等资源对应放进去,到这基本就已经是市面上所有notion-like实现的功能了。
假设以资源文件作为主键,那其实就是一个文件管理器了,我觉得有点偏离了笔记软件的用法,有点以前印象笔记素材库功能的味了,但其实电脑的资源管理器和各种网盘就应该是个大素材库,专注好笔记内容编辑和管理并且能关联对应素材就足够了,就算强如anytype的对象(相当于数据库的主键),也如下图基本就是文档和块级别的类型(我觉得思源的数据库自由度其实也已经接近anytype了)。
image

再者网页链接、数字也是文本,其实已经可以通过块或纯文本绑定填入到主键,并不一定需要一个链接列,只要是文本类型的,其实都已经可以作为主键。
不过数据库和闪卡管理联动感觉是个好方案,可以官方弄个闪卡库,把所有对应的闪卡推迟、暂停等功能弄个对应的闪卡状态列进行切换管理,这样可能会清晰直观,不用再引入新的界面,并且还可以自己增加其他标签,但是工作量会不会比单独做个管理界面多就需要进一步评估了,因为其实这就是目前正在优化闪卡的部分。至于其余把列单选多选类型作为主键我也想不到应用的场景了。

@88250 88250 changed the title Add the database attribute dock panel 编辑器顶部添加数据库属性面板 May 24, 2024
@TCOTC
Copy link
Contributor

TCOTC commented May 24, 2024

想了想,如果添加按钮的话,位置最好要固定一下

image

@5kyfkr
Copy link

5kyfkr commented May 24, 2024

想了想,如果添加按钮的话,位置最好要固定一下

应该不用多个按钮,建议直接合并到那个数据库标识就行了

@KuiyueRO
Copy link

KuiyueRO commented Sep 5, 2024

我们得考虑普通块的查看(不只是文档块的),所以放在编辑器顶部的方案对于思源来说不通用。

放在侧栏是比较通用的做法,Notion-like 基本都有侧栏打开,这个还是比较符合用户习惯的。

关于普通的块的查看,我的建议是可以考虑tana的做法。我知道tana和思源有很多的不同,但展现方式上可以借鉴参考,这段时间我可以比较重度地使用一下tana,并提供一些参考和建议

https://tana.inc/

@KuiyueRO
Copy link

image

主要简单介绍下tana的一些交互,tana做了些比较取巧的设计。还有就是有些概念的解释不算准确,但感觉这样子更容易理解一些。
另外,tana有自己的特色,我只是基于思源现有的功能提出一些可能比较适合思源的想法。

先说下区别,tana和思源在块属性这方面有一定的相似之处,最大区别是

  • tana作为一整个数据库,而supertag则是作为筛选和独立的数据库视图存在。
  • 思源支持多个数据库。

取巧的地方

  • 行内标签,这玩意实际上就是思源块右侧那个数据库名称
    • 它的样式做的和行内标签一样
    • 快速输入,像行内标签一样通过特殊标识符直接从行内创建或添加(添加完后就不在正文内了,不能用退格键删除)
  • 块属性视图(列表)和子项缩进一致,所以看图或者刚用的人看起来会有点迷糊。

建议

使用tana后的建议:

  1. 思源的块属性视图可以在块下方呈现+编辑,且可以手动选择隐藏或者显示。

基于思源的建议:

  1. 直接编辑
  2. 主键中渲染内容(包括图片等)
  3. 希望不仅仅显示数据库的名称,可以自己决定 数据库+某个属性列的内容
    1. 例如"聊天记录 bbaa 👍👍👍","网络书签 视频"。

最近在尝试思源的日记方案,希冀可以在记录零碎内容的同时,直接结合数据库进行整理。

image

image

@TCOTC
Copy link
Contributor

TCOTC commented Oct 25, 2024

现在 Notion 支持同时在编辑器顶部和侧边显示了:

侧边展示

属性显示

@5kyfkr
Copy link

5kyfkr commented Oct 25, 2024

现在 Notion 支持同时在编辑器顶部和侧边显示了:

好家伙,其实我们讨论半天方案1侧边栏方案就是类似这种,方案2就是原来notion的顶部方案,各有优缺点,前期讨论的方案1缺点就少了一条

方案1缺点:
欠缺与文档内容的关联感和整体性,数据库属性更像是文档的属性,而不是文档内容的一部分。
非主动弹出,需要滑动鼠标打开侧边栏或点击打开侧边栏查看。
侧栏平时宽度较窄,若展示内容增加后需把侧栏拉宽查看。
与其他Notion-like软件展示和操作方式不同,可能会造成使用不习惯。 Notion做了

@TCOTC
Copy link
Contributor

TCOTC commented Oct 25, 2024

使用tana后的建议:

  1. 思源的块属性视图可以在块下方呈现+编辑,且可以手动选择隐藏或者显示。

@KuiyueRO 这个方案应该不行,思源的块很长的情况下交互不好

@TCOTC
Copy link
Contributor

TCOTC commented Oct 26, 2024

这里需要支持切换三种属性(关联 #11284 的需求):

image

image

@HibernalGlow
Copy link

HibernalGlow commented Nov 4, 2024

使用tana后的建议:

  1. 思源的块属性视图可以在块下方呈现+编辑,且可以手动选择隐藏或者显示。

@KuiyueRO 这个方案应该不行,思源的块很长的情况下交互不好

能否由用户选择块属性的每个数据库要显示的列 有时候只用显示 类别、重要性这几个属性

@sorcierdw
Copy link

[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284

内置和自定义属性也要吗,这两个应该不常用吧,数据库属性显示在侧栏的时候选中对应的主键行就能看到数据库属性了

建议最好都加上,就目前的使用来看,自定义属性和数据库属性有种割裂感,比如markdown的yaml导入思源生成的是自定义属性,而数据库中能编辑操作的是数据库属性, 如果用户从自带的md文件迁移入思源,想维护一个基于原来md的yaml内容的数据库的体验会更好

@KuiyueRO
Copy link

KuiyueRO commented Jan 7, 2025

建议最好都加上,就目前的使用来看,自定义属性和数据库属性有种割裂感,比如markdown的yaml导入思源生成的是自定义属性,而数据库中能编辑操作的是数据库属性, 如果用户从自带的md文件迁移入思源,想维护一个基于原来md的yaml内容的数据库的体验会更好

这个需求和当前issue关系不大。请帮下面这个issue打复活赛😎

#13121 (comment)

@hdg8087
Copy link

hdg8087 commented Feb 15, 2025

支持,一直在等待这个功能。

@TCOTC
Copy link
Contributor

TCOTC commented Feb 19, 2025

用户需求:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests