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

Attribute Panel - Database supports display database block floating window #9285

Closed
88250 opened this issue Sep 27, 2023 · 34 comments
Closed
Assignees
Milestone

Comments

@88250
Copy link
Member

88250 commented Sep 27, 2023

https://ld246.com/article/1695732053015/comment/1695778237982#comments

@88250 88250 added this to the 2.10.8 milestone Sep 27, 2023
@zxhd863943427
Copy link
Contributor

那假如属性视图被复制了多份如何处理?属性视图终归要考虑一份数据被放在多个地方展示的。

@88250
Copy link
Member Author

88250 commented Sep 27, 2023

确实,我忽略一个 Database Block 可以复制多份的情况。目前思源中的复制粘贴 Database Block 后会产生新块,但是关联的数据库没有做复制,也就是同一份数据,这里似乎不太合理,复制 DB Block 应该是深度克隆。

@88250 88250 removed this from the 2.10.8 milestone Sep 27, 2023
@zxhd863943427
Copy link
Contributor

确实,我忽略一个 Database Block 可以复制多份的情况。目前思源中的复制粘贴 Database Block 后会产生新块,但是关联的数据库没有做复制,也就是同一份数据,这里似乎不太合理,复制 DB Block 应该是深度克隆。

深度克隆问题更大,用户只是想多个地方展示,结果其实块的属性不断增加了。
而且之后思源出了不同的视图,我希望一个地方是看板视图展示,另一个地方是表格展示,结果确实产生了两套一样且不同步的属性,我认为是不符合用户的期待和notion中实现的逻辑的。
这个是模板列也无法解决的,同样会导致属性不合理的增长。

@88250
Copy link
Member Author

88250 commented Sep 27, 2023

Notion 是深度克隆的。

@zxhd863943427
Copy link
Contributor

良好的做法可能是,增加一个dock,展示所有的属性视图,为之后属性视图实现多个多个视图同时查看做好准备。

@88250
Copy link
Member Author

88250 commented Sep 27, 2023

面板扩展靠社区了,后面提供 API 吧。现在得把优先级更高的数据库中创建文档的问题讨论清楚 #9272 😂

@zxhd863943427
Copy link
Contributor

Notion 是深度克隆的。

等等,我需要去看一下notion的效果是啥,但我印象中notion复制database不会导致属性增加,而只是增加了操作原有属性的界面和展示的视图

@zxhd863943427
Copy link
Contributor

我的记忆没有错,无论notion实际上是怎么实现的,但结果是notion复制database不会导致新建属性,结果就是相当于多了个界面来展示、操作共同的属性,这除了视图目前思源也会同步外是与当前的思源一致的。

@88250
Copy link
Member Author

88250 commented Sep 27, 2023

你是复制的数据库那个块吗?复制块以后整个数据库包括其中的文档都会被重复一份新数据的,我这里测试是这样。

@zxhd863943427
Copy link
Contributor

我是直接/database,新获得了一个database 并选择到已有的database,手机上复制的数据库那个块的操作没能摸索出来。

@zxhd863943427
Copy link
Contributor

zxhd863943427 commented Sep 27, 2023

你是复制的数据库那个块吗?复制块以后整个数据库包括其中的文档都会被重复一份新数据的,我这里测试是这样。

这个逻辑我刚刚切换到电脑,也发现确实是有这种操作,那么思源可能是需要实现两种逻辑:一种深层克隆、一种仅引用克隆。我觉得其实还是后者更常用一点,应该先实现后者。

@88250
Copy link
Member Author

88250 commented Sep 27, 2023

你前面说的应该是创建一个 View,然后绑定数据源到已有的 database 上,这种情况是视图。

@88250
Copy link
Member Author

88250 commented Sep 27, 2023

目前思源的复制数据库块就是后者,但是问题就是属性面板中跳转就不唯一了,会对应多个块。

@zxhd863943427
Copy link
Contributor

zxhd863943427 commented Sep 27, 2023

所以可以先不做吧,最好的做法其实就是如上所述新做一个面板,次好的方案是弹出一个dialog,实时生成一个临时的属性视图,毕竟用户很多情况下没必要真的知道属性视图放在哪个文档里。

@zxhd863943427
Copy link
Contributor

目前思源的复制数据库块就是后者,但是问题就是属性面板中跳转就不唯一了,会对应多个块。

另外目前复制视图会把筛选的选项也同步过去,我觉得之后还是要把展示和实际的数据分离的,视图就应该储存在块中,而不是avs/下

@88250
Copy link
Member Author

88250 commented Sep 27, 2023

@zxhd863943427 这不矛盾了吗? #9270 (comment)

@zxhd863943427
Copy link
Contributor

@zxhd863943427 这不矛盾了吗? #9270 (comment)

我没有理解哪里矛盾,你是说仅在属性视图中的行,无法跳转到属性视图?

@88250
Copy link
Member Author

88250 commented Sep 27, 2023

你在那个评论里面的设想是不再使用块属性,而这里的评论是通过块属性实现视图分离,这我就有点无法理解你的意思了。

@zxhd863943427
Copy link
Contributor

我说弃用的是插入到属性视图中的块的块属性,这里的是属性视图本身是一个块,可以把视图放在属性视图的块属性中。

@88250
Copy link
Member Author

88250 commented Sep 27, 2023

大概明白你意思了,先解决那个创建块和绑定属性的问题吧。

@88250 88250 removed the Development label Oct 1, 2023
@88250 88250 changed the title Attribute Panel - Database supports jump to block Attribute Panel - Database supports floating window to preview Oct 5, 2023
@88250
Copy link
Member Author

88250 commented Oct 5, 2023

#9287 (comment)

考虑在 属性面板 - 数据库 页签这里支持浮窗预览视图(没有编辑器上下文,只有一个视图节点),这样能够解决 #9287 中直接删除数据库块后无法查看视图的问题,用户可以在这个浮窗中删除行以解绑 行-块 关联。

@88250 88250 self-assigned this Oct 5, 2023
@88250 88250 modified the milestones: 2.10.10, backlog Oct 10, 2023
@SineMark2020
Copy link
Contributor

这种复制数据块还相关联在使用上常会很困扰,特别是对不熟这套软件的人反而容易造成误删,而且每次複杂的模版都要重做一次. 可能还是要提供另一种不关联或删除关联的方式

@88250
Copy link
Member Author

88250 commented Oct 24, 2023

@SineMark2020 模板的情况应该是需要深度克隆。

@SineMark2020
Copy link
Contributor

很多人只是把database当成更好用的表格而已,我甚至认为这才是大部份人的使用方式. 如果不考虑这样的使用方式,等公测结束后会造成混乱,让人觉得思源不好用而已,还是请多考虑考虑.

@88250

This comment was marked as outdated.

@88250
Copy link
Member Author

88250 commented Oct 24, 2023

先解决模板浅克隆 #9494

@zxhd863943427
Copy link
Contributor

别吧,嵌入块太奇怪了

@zxhd863943427
Copy link
Contributor

我反对这个默认深度克隆的做法。可以提供深度克隆的选项,但不应该成为默认配置。
这会导致下面难以解决的问题:

  1. 每次复制,块就会多一堆属性
  2. 用嵌入块,难以实现不同地方使用不同视图
  3. 剪切、移动会有难以预见的问题。

@88250
Copy link
Member Author

88250 commented Oct 24, 2023

  • 嗯,是有这个问题
  • 嵌入块的话就是根据当前视图(原块选择的视图 tab)来的
  • 可能确实会有问题,待学习一下 Notion 的做法

@88250
Copy link
Member Author

88250 commented Oct 29, 2023

深克隆有点问题,Notion 中重复(Duplicate)数据库块时是把视图中的所有 page 都深克隆一次。我们没法这么做,因为块不只是文档块,还有其他块,其他块没有文档容器的话无法重复。

可能还是只能浅克隆 😂 再考虑看看,各位有什么建议欢迎讨论啊。

@88250
Copy link
Member Author

88250 commented Nov 1, 2023

深克隆的路走不通,打算独立维护关联关系了 #9496

@88250 88250 changed the title Attribute Panel - Database supports floating window to preview Attribute Panel - Database supports jump to block Nov 2, 2023
@88250 88250 modified the milestones: backlog, 2.10.14 Nov 2, 2023
@88250
Copy link
Member Author

88250 commented Nov 2, 2023

前面提到复制粘贴后的“数据库镜像块”会在编辑器中标识出来 #9578

@mozhux
Copy link

mozhux commented Nov 2, 2023

不清楚这样做以后,notion的筛选结果成新视图会不会有影响?能不能实现?比如我有一个大表是A,然后筛选其中某列,notion支持这样的筛选变成一个新的数据表在下方,也没有改变什么属性,只是换了个排序方式在那。

@88250
Copy link
Member Author

88250 commented Nov 2, 2023

不清楚这样做以后,notion的筛选结果成新视图会不会有影响?能不能实现?比如我有一个大表是A,然后筛选其中某列,notion支持这样的筛选变成一个新的数据表在下方,也没有改变什么属性,只是换了个排序方式在那。

多视图后期考虑。

@88250 88250 changed the title Attribute Panel - Database supports jump to block Attribute Panel - Database supports floating window to preview database block Nov 2, 2023
@88250 88250 changed the title Attribute Panel - Database supports floating window to preview database block Attribute Panel - Database supports display database block floating window Nov 2, 2023
Vanessa219 added a commit that referenced this issue Nov 3, 2023
Vanessa219 added a commit that referenced this issue Nov 3, 2023
appdev pushed a commit to appdev/siyuan-unlock that referenced this issue Nov 13, 2023
appdev pushed a commit to appdev/siyuan-unlock that referenced this issue Nov 13, 2023
appdev pushed a commit to appdev/siyuan-unlock that referenced this issue Nov 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants