はじめに
hkob の雑記録の第213回目は、Devices や Performances に繋がっている SetLists の中のコンテンツを登録する Contents をエクスポートします。このテーブルには 2203 ページの情報があり、一筋縄ではいきません。また、SetLists も単一のプロパティでは単純に接続するページを一意に特定することができません。まず、これらを取り出すための情報をまとめた上で、数日にかけてページの接続をしていきます。
ER図
Contents は SetLists と Songs の両方のデータベース共に1対多の関係で接続します。これで SetLists と Songs が多対多で接続されることになります。また、アルバムごとに編曲者は異なるので、Person と Contents は 1 対多で Arrange として接続します。

Contents のエクスポート
Contents は以下のプロパティをエクスポートすることにします。Set list のリレーションは、このプロパティのテキストだけでは、リレーションを復元することができません。また、名前自体も意味がありません。そこで、このプロパティを一番最初に持っていき、差し替え用の Title プロパティにしてしまいます。Name にはコンテンツの番号を入れていました。これは Performances と同様に Number という名前のプロパティにします。ただし、記号が一部含まれるので、Text とします。Song や Arrange は一意に参照できるので、それぞれ SongStr, ArrangeStr としてインポートします。最初に言ったように SetList を特定するために、アルバムなどの SetList に対しては Device と Device type、Performance に対しては Set list のタイトルと Concert の情報を利用します。

作成した CSV ビューはこんな感じです。コンサートやアルバムの情報が入り混じって入っています。

前回と同様に CSV に書き出し後、リレーションの URL 削除をしてしまいます。
sed 's/ (https:\/\/www.notion.so[^)]*)//g' Contents\ 981dadaa69344b96a93f19a743f06261.csv | sed 's/\([0-9][0-9]*\)\/\([0-9][0-9]*\)\/\([0-9][0-9]*\)/\1-\2-\3/g' > Contents.csv
変換結果は以下のようになります。なぜか URL が残ってしまっています。どうやら Rollup だと CSV 出力時に URL を出力してしまうようです。
Set list,Name,Version,SongStr,ArrangeStr,Device type,Device,Concert,Comments シングル(NEW SEASON),01,,NEW SEASON,斉藤英夫,Single,https://www.notion.so/d465f5fd075946ef8cfb1af9c3e70729,,あいつに恋して テーマソング Set list A,01,,オーティスレディングに乾杯,,,,https://www.notion.so/d1959462366745858e2b663c9ab7b18d, シングル(NEW SEASON),02,,ピリオド,斉藤英夫,Single,https://www.notion.so/d465f5fd075946ef8cfb1af9c3e70729,, アルバム(NEW SEASON),01,,涙 Good-bye,WISE(山本拓巳・菅野真吾),Album,https://www.notion.so/ce7da589f8cf42379fa63a887692152d,,
今回はタイトルが欲しいだけなので、数式で DeviceStr と ConcertStr を作成しました。


今度はうまくいきました。
Set lists,Name,Version,Song,Arrange,Device type,DeviceStr,ConcertStr,Comments シングル(NEW SEASON),01,,NEW SEASON,斉藤英夫,Single,NEW SEASON,,あいつに恋して ーマソング Set list A,01,,オーティスレディングに乾杯,,,,渋谷ライブイン ファーストライブ, シングル(NEW SEASON),02,,ピリオド,斉藤英夫,Single,NEW SEASON,, アルバム(NEW SEASON),01,,涙 Good-bye,WISE(山本拓巳・菅野真吾),Album,NEW SEASON,,
Contents のインポート
森高千里DBの下に作成したいので、また Cmd-Opt-9 で新規ページを作成します。この新規ページを開き、インポートを実施しました。Set lists を Title, Version を Select にしただけでそれ以外は全て Text にしています。

インポートを実行しました。件数が多くインポートだけでもかなり時間がかかりました。

おわりに
Contents はリレーションを設定する条件分岐もかなり多いため、今日はここまでにしておきます。インポートだけでもかなり時間を食ってしまったためです。