![見出し画像](https://assets.st-note.com/production/uploads/images/56464892/rectangle_large_type_2_c6545a75bb922dd0c2ed460404f96fa8.jpg?width=1200)
DBのフィルタリングについて
下記記事で使用しているnotionの日記ページの各DBフィルタリングについてコメントでご質問をいただき、お返事しようと思ったのですが長くなってしまったので、記事に起こしました。
日記ページには、メモを残すノートDBや、読んだ本を記録する鑑賞記録DBや、やったことリストのDONE DBなどがlinked databaseされており、それぞれ、その当日ページのものが表示されるようフィルタリングしてあります。ここについての説明です。
まず、私がフィルタリング方法は下記2つです。
①各DBの制作日(Created time)で当日をフィルタリングする
②各DBを日記DBの当日ページでリレーションして、当日ページをフィルタリングする
①Created timeでフィルタリングする
これはいたってシンプルです。
各DBのプロパティにある、Created timeを当日分でフィルタリングするやり方です。
↑これですね↑
ただ、これは毎日テンプレ適応して新しいページを作るたびに、フィルタ部分の日付を変更しないといけないので、少し面倒なやり方です。最低限にしておいた方がいいと思います。
(ここに@todayみたいな機能をする項目があれば最適なんだけど、ない…)
基本的には、私は②をメインにして使っていて、②が使いにくい時のみ、こっちのフィルタリング方法を使っています。(使い分け後述します)
②当日ページのリレーションでフィルタリングする
こっちは、各DBのプロパティに、日記DBのページとのリレーションプロパティを設けて、それぞれ当日とリレーションさせるやり方です。
ロールアップすることで、日付の情報も持てるので、それぞれのDBでのフィルタリングにも使えます。(残念ながらカレンダービューのデータ元には使えません。要望は出してるんですが…ロールアップ系は結構痒いところに手が届かない印象が少しあるので、難しいのかな〜)
全部リレーションめんどない?と思った方もいるかもしれませんが、こっちでフィルタリングする利点は、主に手間削減です。
Q.全部リレーションすんのめんどない?
フィルタリングされたところから登録するすると、自動的にフィルター条件のリレーションが適応されるので、日記ページから各DBの新しいページを作るだけでその日で区別されます。
Q.①みたいな手間ないんか?
ないで!👍
こっちはnotionの機能で、テンプレ編集画面で、フィルターをそのテンプレに設定しておくことで、テンプレ適応で自動的にフィルター条件も変更されるようになっています。楽ですね!最高の機能だぜ。
で、手間削減以外としては、日記DBの表示をカスタマイズすることで、各DB間を横断しての一覧性を持てるところも、②のフィルタリング方法の利点ですね。(カレンダーviewだと切れて見えないところも多いけど)(ちゃんと全部確認したい時はテーブルviewで確認できるので…)
イメージとしては、日記DBを、各DBの日付マスタにしている、みたいな感じでしょうか。
横断性っていうのがやっぱりnotionは強いし、生かして行きたいですよね。
見返してると、「この本読んでたから、こういう単語を知らなくて調べたのか」とか「こういう刺激でこの漫画ネタ思いついたんだなー」みたいな自分の行動を中心においた横の繋がりが見えるのが面白いとこです。
Q.欠点もあるんか
ある。
このやり方は、日記ページから各DBの新しいアイテム作ることで手間を削減させてるので、日記ページ以外からDBに追加した場合、逐一リレーションが必要になります。
なので、例えば私だと、
・save to notionなど外部をクリップして貯めるタイプのWEBクリップDB
・APIで自動転記しているTwitterログDB
などは①の方法でフィルタリングしています。
③併用してるのもある
でも、②の欠点は辛いけど、
・一覧性を持たせたい
・create timeと登録日は別にしたい(翌日に追加する時とか)
などもあるので、併用している場合もあります。
私だと鑑賞ログがそうです。ここは日記ページから追加することもあるし、クリップで追加することもあるので、①と②を併用してます。
初期viewのフィルターはこんな感じ
どうしてもクリップして制作するととこういう抜けができたりするので、上下のをコピーしたり、日付記入したりして、リレーションさせてます。
ただ、上記のやり方だと、もし前日みたアニメだとかを登録すると、今日の分以外に前日分も表示されてしまうので、今日リレーション済み分だけのviewを作ったりもしています。
(1、2個だとそのままにすることが多いですが、たまに後でまとめての整理するとここに10-20件とか表示されてしまう時があるので、そういう時にはviewを切り替えて使います)
使い分け
上にもサラッと書きましたが、下記の観点でどっちにするか考えています。
・各ページの制作方法はどこからが多いか
・最終、どういう風に閲覧したいか
save to notionの使用が多いDBは確実に①ですし、
notionから直接制作したら、メモなどをDBにドラッグして制作するのが多い場合は②です。
あとはついさっきも書いたとこですが、常に当日に即記録、整理できるほど真面目じゃない場合(一時保管的なところに置いておいて週末にまとめてが多いとか)も、②がおすすめですね。
まとめ
参考になりましたでしょうか…?
久々に自分の書いた記事を読んだら色々言葉が足りてなくて、わかりにくかったのでなるべく丁寧に…でも簡潔に…説明できるように…と書いたけどいけてるのか…。
コメントいただけるのはとても嬉しいので、わからないところとかありましたらまたお気軽にいただければ嬉しいです!
最初の記事の追加もこないだアップしたのでもしよろしければ… つ🍵
この記事が気に入ったらサポートをしてみませんか?