-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Comments
https://dbeaver.com/docs/dbeaver/Data-View-and-Format/#table-vs-record-views 数据有很多列时会很有用……操作和实现可以参考下这个 |
#11113 |
思源中不光是文档,普通的块也可以加到数据库库,不是块也可以…
属性面板怕是只适用于文档
相比notion、wolai,思源情况比较复杂
…---原始邮件---
发件人: ***@***.***>
发送时间: 2024年5月13日(周一) 中午12:22
收件人: ***@***.***>;
抄送: ***@***.******@***.***>;
主题: Re: [siyuan-note/siyuan] 希望增加数据库表格编辑窗 (Issue #11371)
#11113
属性界面分离的我也提了,感觉其实相当于增加一个属性面板,像反链面板一样能固定到侧边栏,那样就最完美了
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: ***@***.***>
|
是的,我觉得可以默认显示文档的属性,然后点击块右上角关联的数据库的时候在显示对应的属性,或者像你这个场景,点击数据库主键显示对应主键的属性 |
感觉跟这个需求有部分交集:快速打开数据库主键绑定文档的属性面板 · Issue #11284 · siyuan-note/siyuan 绑定块的数据库条目显示属性面板,未绑定块的数据库条目就只需要显示数据库属性 |
还有列被隐藏的情况下,列是无法编辑的,就需要有个面板来编辑 |
我觉得数据库属性面板还是得单独弄一个出来单独放到侧边栏,现在藏得有点深,想实现修改对应块或文档的数据库属性如下: |
@5kyfkr @88250 具体设计
考虑上面的展开数据库属性的方案可能一致性不好,数据库打开的页面才显示数据库属性,正常打开则没有(条目未绑定块不存在这个问题) 我觉得这样既能给块加上数据库属性面板(从notion过来的人,应该都挺需要这个功能的,而且列一多,这个功能就很有必要性),也符合现有思源的设计理念。 |
@Achuan-2 目前考虑的设计是:
|
[需求] 我需要一个快速打开数据库主键绑定文档的属性面板(内置属性、自定义属性、数据库属性)的方式 #11284 |
内置和自定义属性也要吗,这两个应该不常用吧,数据库属性显示在侧栏的时候选中对应的主键行就能看到数据库属性了 |
停靠栏面板有如下问题
|
光标在普通文档里的任意块里面,或者光标在文档标题,就能对应看到块或文档的数据库属性
如第一点,可以在任意块看到对应关联属性,不局限于数据库的主键点选
这个应该没什么好办法了,只能看界面优化的程度了,如果分离弹窗又会显得复杂了,或者能支持你说的那种单独页签展示出来,那应该就能解决 |
在块上的时候也可以显示,类似属性面板 - 数据库。
反链也是块级的,在数据库行和块上都应该可以显示。
无论如何显示(浮窗或者现在的任何一个面板)都有这个问题,能拉宽度就可以了。 |
目前浮窗+点击数据库角标已经比较快捷了,这个需求再缓缓吧。 |
停靠栏面板短期内不会大改了,也许后面会考虑支持浮动模式和窗口模式。 |
我提这个 issue 本来的需求就是编辑自定义属性和内置属性,编辑数据库属性只是附带的 |
目前其他停靠栏我几乎不会调宽度,数据库属性主要一定是两列结构,一旦列很多,多选列选项多了,用了文本列,宽度估计会有点吃紧。 如果聚焦块支持展开数据库属性面板,即可以在浏览整个数据库时查看各项的所有属性(可以支持分屏自动聚焦展开数据库属性),又可以在浏览文档和块时,聚焦点击展开数据库信息,我觉得这个交互是更好些的。而不需要我找到一个块,点击,然后我还要再多打开一个停靠栏查看,那为什么我不直接用shift+click查看块属性面板呢,从这个角度来说,就算停靠栏支持显示块和文档的数据库属性,意义不是很大,主要意义在于横向显示数据库每行的属性。 我这个方案对查看文档的数据库属性面板体验好,虽然块的数据库属性面板查看不方便,但是本来这个需求就不如文档快捷查看数据库属性,只要数据库分屏查看项目,自动展开就还好,因为大多数人查看段落块的数据库属性估计更多通过数据库来看的,因为这些块主要靠数据库来维护,平常是零散在各处的 此外,多一个停靠栏还有一个问题,我如果喜欢分屏查看数据库的项目,左边页签是整个数据库,右分屏一个文档,如果想看这个文档的数据库属性,我又要打开一个停靠栏,就很奇怪,占用空间。 思源要做方便查看块的数据库属性,还是建议放在块前,和其他软件差别太多一定是会被人诟病的 |
我们得考虑普通块的查看(不只是文档块的),所以放在编辑器顶部的方案对于思源来说不通用。 放在侧栏是比较通用的做法,Notion-like 基本都有侧栏打开,这个还是比较符合用户习惯的。 |
我觉得notion like的侧栏打开逻辑是分屏打开而不是dock栏打开,所以我这个方案才添加了展开按钮,点击自动分屏,右侧打开块和自动展示块数据库属性 |
@Achuan-2 感觉没理解到 假设A文档中有数据库块B,B中有行c1,c2,A文档中还有块D,A文档被添加到了数据库E,块D被添加到了数据库F 点击A文档,侧栏显示A的属性(数据库E) 光标选中B中c1行,侧栏显示c1行的属性(数据库B) 光标选中块D,侧栏显示块D的属性(数据库F) |
自定义属性是可以在多个数据库之间共享的,比较方便 |
总感觉自定义属性是部分资深用户和插件作者的玩具,更多的是功能性的作用,显示的意义不大hh;内置属性的显示意义也不是很大,毕竟它们需要修改的频率并不高,而且已经可以在文档或内容块右上角全部展示了 |
还列出了不同情景的交互方式,可以说是相当详细了!我也是更喜欢方案二一些。 |
另外就是数据库主键的“展开”按钮(若有),完全可以像前面二位说的那样,替代现有的“更新”按钮,后者基本上用不到,放在右键菜单就行 |
已更新2.6,对于块属性角标确实不展开可能统一点,不过还是待定,假如一个文档里有多个块的属性想查看编辑,类似数据库表格里的场景,就要不断按前进后退退出聚焦,感觉也有点麻烦。 |
这个属于细节问题,放右键菜单也行,更新这个按钮我在纯文本转文档的时候还是挺好用的 |
我觉得顶部打开还是侧边打开都可以,但我希望有一个统一的方案。 database中的主键在未来是有扩展的可能的,目前虽然只有块和文本两种,但已经是多种主键并存的情况了,未来更多的主键类型也不是没有可能,也就是说,未来会有更多的内容可能被允许添加到database里。 反过来说,database中一项的内容如何出现在其他地方?如反链面板、文档正文、书签、标签和搜索面板中。 我觉得这是一个需要慎重考虑的问题,但我的观点是需要一个统一的、database行级的容器去包裹database内的数据,以便允许它能出现在各种地方,而无论是顶部还是侧边栏只是这个容器的位置不同。 |
统一的方案是指两者优点都吸收进来的新方案嘛,有没有思路能参考下
要添加新主键那是另一个问题了,主键如果是文字字段,那目前思源都已经支持了(块文字字段,文档标题字段,纯文本字段),我是想不出还能怎么扩展了
数据库一定程度上就是书签、标签的替代功能,现在这个issue其实就相当于数据库自己的反链面板,反向展示数据库属性和现有的反链面板两者应该是平级的关系。
同上一点,如果数据库与其他功能是平级而不是包含关系,就无法出现在各种地方,只需要优化好这个展示面板的位置和展示效果就可以了 |
你误解了我的意思了,我说的更接近于实现层面上的事情,也就是我希望database的属性能是一个单独的组件,它在属性面板、顶部、侧边都共用一串代码,甚至插件也能调用。
就思源内部的元素来说,起码还可以考虑闪卡、资源文件(pdf、图片、视频和其他)、pdf注释这几种主键。更广泛来说,还应该允许有插件拓展主键类型,或者把现有的列类型(数字、单选、多选、链接)作为主键。
我并没有考虑这两者是否应该平级的问题,我只是想问,假如我需要把database中的一行加入书签,或者我希望在反链面板中看到一个主键类型为文本的行,这该如何实现? 如果直接回答“它不应该出现在其他地方”,那未免有点可惜了。 |
这个可能是底层设计的范畴了,@88250 要D大来看看有没可能实现共用了
这些类型做成主键能方便对这些类型的管理,但是实际上用文字主键然后再对应对资源进行管理,也就是现在的方式感觉也够了,面向对象的数据库有点anytype的味了,就是看底层有没有条件实现了,还是需要D大看看。
databse的其中一行加入书签这个功能估计困难,但是目前可以把主键加入书签,然后通过本issue点开主键的文档或块就能看到对应的属性了。另外纯文本现在也没办法使用双链语法,反链面板里现在肯定看不到,提及面板里能加上看到也不错,也是底层的问题,还是需要D大看看了。
就如标签和书签井水不犯河水一样,假如标签弄成也能添加到书签里或者合二为一,那就乱了,个人感觉边界需要界定清楚,如果是平等的层级甚至高于其他功能,那就不应该混在一起。 |
数据库中的行就两种,绑定块和非绑定块,这个基础不太可能变了,不用考虑其他形式。关于非绑定块如何被引用,这个后面再考虑吧。 |
D大,方案2估计是大家共识了,看看什么时候排上路线图安排下,感觉优先级也挺高的,毕竟数据库这个展示挺常用的,其他notion-like用户跑过来肯定也希望有这个。另外路线图也挺久没更新了,还有数据库表格分组(看板前置任务)、多窗口工作区等中饼没加进去,都有挺大提升,每个拉出来都能值一个0.1中版本号 |
最近两个月主要还是修 bug 和做一些小的改进,这个 issue 等会拉进计划中。 |
争取先搞个稳定版出来,不然 BUG 没完没了了。 新特性或许可以开个分支来开发? |
对了,方案 2 中“侧栏”这个界面元素目前是没有的,这个是否能用目前的编辑器页签?也就是打开文档就在顶部显示数据库属性,其他块聚焦显示?数据库中点击绑定块行打开时沿用现在的打开块跳转逻辑,即单击新开页签、Alt+点击分屏打开? 主要就是考虑不要引入新的界面元素了,否则这个地方对用户来说就比较奇怪,因为它既不是页签也不是停靠栏面板。 |
我们计划最近一段时间以修复 bug 为主,不引入特性,等稳定一段时间后再开始开发特性。是否需要分支主要看是否有特性贡献者。 |
主要问题是,如果沿用页签,能否判断是从展开按钮打开的,并且能自动替换为下一个点了展开的页面。因为如果不判断,就会丢失文档页面浏览位置的记录(展开默认会回到顶部)。自动替换是notion-like的逻辑。
对的,点击绑定块沿用现有逻辑,新开页签、Alt+点击分屏与展开页面的区别就是前两者会记录页面滚动位置,后者不会
确实,但是如果不引入就会比较难区分是展示面板还是右分屏文档,展示面板毕竟是会被下一个展开文档替换的 其实展示区就是个大号内容框,也可以说是拆分出来的侧边栏实现方式 |
那就用编辑器页签吧,关于浏览位置这个点是现实考虑。 麻烦再总结一下最后的方案,以供后面实现时参考。 |
@5kyfkr 这个在思源里已经有了 |
方案2最终总结 【功能点1】在文档、块聚焦页面顶部展示数据库属性。 【功能点2】文档顶部增加折叠展开按钮(备选方案),或者将折叠展开集成在现有文档顶部数据库标识中(建议的方案),点击文档顶部数据库标识可展开或折叠数据库属性界面,并且提供设置选项,可设置默认展开或者默认折叠(默认折叠后仅在功能点3、功能点4的情况下展开)。 【功能点3】在数据库主键处对文档块、内容块、纯文本(如可行)增加展开按钮,展开后可在右侧分屏显示对应的文档、块聚焦页面顶部。下一次展开不替换原来的页面,而是再打开新标签页。 【功能点4】点击文档内部的块的数据库标识,直接全屏进入块聚焦展开页面,不另外分栏展示,减少界面入侵和右侧分屏标签页数量,与目前进入块聚焦的功能逻辑相同。 【功能点5】识别在【功能点3】的展开页面的情况下,不记录页面浏览位置,即只有在文档树或其他地方打开文档时会保存页面浏览编辑位置。 整体实现效果: 图1.【功能点1】【功能点2】实现效果见下,图片为展开后的情况。可设置默认展开或者默认折叠。 图2.【功能点3】实现效果见下:数据库内点击主键上的展开按钮,页面展开到右侧分屏,并默认显示至顶部,并展开数据库属性(如果默认折叠)。 图3.【功能点3】继续展开页面,不关闭上次展开页面,打开新展开标签页。 图4.【功能点4】实现效果见下:点击块数据库块标识进入块聚焦页面,并折叠或隐藏文档数据库属性。 图5.【功能点3】的补充:纯文本主键依照图4的内容块聚焦页面制作展开页面,如果无法实现则无展开按钮 方案2优点:
方案2缺点:
|
从数据储存上看,目前只是使用了一个Block类型进行划分,简单地增加几个类型,前端新增对应的显示方式和打开方式即可,这方面应该不算太难。 |
应该不用多个按钮,建议直接合并到那个数据库标识就行了 |
最终方案:
#11371 (comment)
数据库属性面板
In what scenarios do you need this feature?
列很多的情况下,无法一眼看到所有列,需要不断shift+滚轮左滑右滑查看,不方便浏览和编辑
希望增加编辑窗
Describe the optimal solution
可采用悬浮窗的形式
点击不同的行,编辑窗的内容自动改变
Describe the candidate solution
也就是想把这个页面固定下来,点击不同行时,这个界面也能自动切换,不过这样没有主键引用的行怎么办呢?
No response
Other information
No response
The text was updated successfully, but these errors were encountered: