盆頃から自宅で音楽DBを作っている。
コレクトしているレコードと演奏ミュージシャンの名前だけでも登録しておきたいもの。
その登録処理について考える。
/* 1アルバムの登録手順 */ 1) 人名の登録を確認する PERSON 表を検索する。 # できればLIKE検索したいところ 2) 未登録人名を登録する。 PERSON 表に登録する。 3) グループの登録を確認する。 Organization表を確認する。 4) 組織種別がなければ ORGKIND表に登録する 4) 未登録組織名を登録する。 ORGANIZATION表に登録。 >> 作品名(アルバム名)の登録 5) タイトル登録 PRODUCT 表に作品タイトル、発表年を登録する。 ※年度しかわからないものは1900/01/01とする。 6) 作品の著者登録 AUTHOR 表に、 著者 or 組織名を登録 # PRODUCT_IDを覚えておかねばならない。 >> 曲名の登録 7) 曲名のみの登録。 TUNE 表に曲を登録する。 すでに同じ曲がある場合は登録しない。 # 今は、SIOBで入れているが、出きれば、 一括登録したい。 8) 作曲情報の登録 /home/oracle/MUSIC_DB/TOOLS/INSERT_TUNE_AUTHOR.sql を実行する。 #- 年度しかわからない場合自動的に 01/01を追加したい。 #= 同じ作曲者を一括登録したい。 >> セッション情報登録 9) セッション情報への登録。 INSERT_SESSION.sql を実行する。 -- TUNE_SESSIONに登録される。 一括登録が可能な場合INSERT_SESSION_BULK.sqlを使用する。 ★ここで、セッション番号の範囲を確認しておく。 10) アルバムとセッションを結びつける INSERT_ALBUM_CONTENTS.sqlを実行 #- A/B面も入れる。 ----INSERT_ALBUM_CONTENTS_BULK.sqlは一括処理実行 # - A面の曲数のみ入力すればよい 11) 曲一覧の確認 この時点で ビュー V_ALBUM_CONTENTSを見ると収録曲一覧が表示される。 >>個別セッションのパーソナル情報の入力 12) ミュージシャンの個々の演奏情報を 登録する。 INSERT_SESSION_PERSONAL.sql 全曲に参加している場合、以下で一括登録する。 INSERT_SESSION_PERSONAL_BULK.sql 13) 初出の役割があれば、 ROLES表に登録する。 ※ROLES表は手元にプリントアウトしておこう。 14) セッションの登録記録は、 V_SESSION_PERSONALで確認できる。 いちいち登録内容を確認するとよい。 14) グループの場合、 INSERT_SESSION_GROUP.sql で登録する。
これで一応最低レベルの情報は登録される。
※今後必要そうなもの
・歌詞の登録→著作権。とりあえずムリ。
・音源を確認、存在、不在を確認したら、
SESSION_PERSONALのSOUND_F_FLAGをオンにするアプリケーション
・あと定期的にCSVファイルに
V_SESSION_PERSONALを落とす運用もいいね。
バルク処理の例。
SET AUTOPRINT ON DECLARE begin_tuneid NUMBER(8) := &begin_tune_id; end_tuneid NUMBER(8) := &end_tune_id; i NUMBER(8); BEGIN i := begin_tuneid; for i in begin_tuneid .. end_tuneid loop insert into tune_session values ( session_id_seq.nextval, NULL, i, to_date( '&&sessdate', 'YYYY/MM/DD'), 0,0,0, NULL, NULL, NULL, NULL, NULL ); COMMIT; end loop; END; /