森高千里データベースの再構築(13) : hkob の雑記録 (213)

はじめに

hkob の雑記録の第213回目は、Devices や Performances に繋がっている SetLists の中のコンテンツを登録する Contents をエクスポートします。このテーブルには 2203 ページの情報があり、一筋縄ではいきません。また、SetLists も単一のプロパティでは単純に接続するページを一意に特定することができません。まず、これらを取り出すための情報をまとめた上で、数日にかけてページの接続をしていきます。

ER図

Contents は SetLists と Songs の両方のデータベース共に1対多の関係で接続します。これで SetLists と Songs が多対多で接続されることになります。また、アルバムごとに編曲者は異なるので、Person と Contents は 1 対多で Arrange として接続します。

ER図

Contents のエクスポート

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

Contents のプロパティ選別

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

作成した 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 を作成しました。

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 にしています。

CSV 列の設定

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

インポート直後のデータベース

おわりに

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

hkob.notion.site