何らかの団体を作って活動するとなると、会員名簿と会計帳簿を作る必要に迫られます。私もこれまでにいくつかの団体の会員名簿や会計帳簿の管理をしてきました。現時点での完成形を備忘録と今後の引き継ぎのために記録しておきます。データベースの専門家でもなく、その場その場で調べたり考えたりして行き着いたものなので、不備などがあればご指摘いただけると助かります。
1.なぜLibreOfficeのBaseを使うのか
もちろん団体の会員名簿と会計帳簿を紙に記入してもよいです。しかし紙だと手書きと計算の手間がかかる上に、コピーして再利用することも難しいです。
次に思いつくのがMicrosoft OfficeのExcel(エクセル)やLibreOfficeのCalc(カルク)といった表計算ソフトを使うことです。私も長らくこの方法によっていました。ただ、会費を受け取ったときに会員名簿と会計帳簿の両方に同じことを記入しなくてはならず忘れそうで不安だったことと、決算などで報告書を作るのが面倒だったことが不満でした。Excelのピボットテーブルは使いづらい印象があります。
この2つの問題を解決するためにはデータベースを用いるべきです。Microsoft OfficeのAccessは使える環境になく、MySQLをそのままに近い形で使うのも大げさだと思ったので、結局LibreOfficeのBaseに落ち着きました。
2.会員名簿と会計帳簿のテーブルを作成する
具体的な操作方法などは検索すれば出てくるので、ここでは主に考え方を述べます。
LibreOfficeのBaseも含めて、データベースはテータを格納するテーブル(表)を作り、必要に応じてクエリー(照会)を出力します。そこでまずはテーブルを作成しますが、重複するデータを入力しなくてもいいように設計することが重要です(正規化)。
専門家からは間違っていると言われるかもしれませんが、フィールドタイプは日付なら日付[DATE]、文字ならテキスト[VARCHAR]、その他のカテゴリー分類などなら整数[INTEGER]にして、作成するどのテーブルにも「○○ID」という整数フィールドを作ってプライマリーキー(主キー)を設定すればどうにかなります。
私なら次のようなテーブルを作ります。
(1)会員名簿
フィールド名 | フィールドタイプ |
会員ID | 整数[INTEGER] |
種別 | 整数[INTEGER] |
入会日 | 日付[DATE] |
名前 | テキスト[VARCHAR] |
フリガナ | テキスト[VARCHAR] |
郵便番号 | テキスト[VARCHAR] |
都道府県 | テキスト[VARCHAR] |
住所1 | テキスト[VARCHAR] |
住所2 | テキスト[VARCHAR] |
電話番号 | テキスト[VARCHAR] |
メール | テキスト[VARCHAR] |
最終会費納入 | 日付[DATE] |
備考 | テキスト[VARCHAR] |
「種別」は0が退会、1が正会員、2が賛助会員のようにカテゴリーを割り振ります。「フリガナ」は五十音順で並べるときに使います。理屈上は「郵便番号」から「都道府県」と「住所1」の途中までは得られますが、そこまでプログラムしなくてもよいでしょう。「住所1」と「住所2」を分けているのは宛名ラベル印刷の都合です。もしも「生年月日」や「FAX」などが必要なら適当に加えればよいです。
(2)会計帳簿
会計帳簿は「現金」や「当座預金」のような形態に即してテーブルを作る方法も考えられますが、単式簿記でよいなら「会費納入」、「その他収入」、「支出」のような機能別にテーブルを作るほうが実感に沿っていてやりやすいです。
①会費納入
フィールド名 | フィールドタイプ |
会費ID | 整数[INTEGER] |
納入方法 | 整数[INTEGER] |
納入日付 | 日付[DATE] |
会員名 | テキスト[VARCHAR] |
開始 | 日付[DATE] |
終了 | 日付[DATE] |
単価 | 整数[INTEGER] |
納入合計 | 整数[INTEGER] |
備考 | テキスト[VARCHAR] |
「納入方法」は1が現金で2が当座預金振込といった具合です。月会費で2015年12月から2016年5月まで納入したとしたら、「開始」に2015/12/1、「終了」に2016/5/1のように入力します。「単価」は固定なら省略してもいいですね。「納入合計」は計算で出せますが、日付の引き算は面倒ですし、入力しちゃってもいいでしょう。
②その他収入
フィールド名 | フィールドタイプ |
その他収入ID | 整数[INTEGER] |
納入方法 | 整数[INTEGER] |
納入日付 | 日付[DATE] |
科目 | 整数[INTEGER] |
摘要 | テキスト[VARCHAR] |
金額 | 整数[INTEGER] |
備考 | テキスト[VARCHAR] |
「科目」は1なら寄付、2なら雑収入のように数字で費目に対応させます(入力するのは数字です)。「摘要」には「封筒100枚」のように後でわかるように書きます。
もし定期的な事業収入があったりすれば別途テーブルを作って必要な形に整えることをおすすめします。
③支出
フィールド名 | フィールドタイプ |
支出ID | 整数[INTEGER] |
支出方法 | 整数[INTEGER] |
支出日付 | 日付[DATE] |
科目 | 整数[INTEGER] |
摘要 | テキスト[VARCHAR] |
金額 | 整数[INTEGER] |
備考 | テキスト[VARCHAR] |
先ほどの「その他収入」テーブルとほとんど同じです。ただ、支出は科目の種類が多いので、「補助科目」を設けてもよいかもしれません。
これで下準備はできました。
[…] LibreOfficeのBaseで団体の名簿と会計を管理する(前編) – 浅野直樹の学習日記では、なぜLibreOfficeのBaseを使うのかというところから、必要なテーブルの作成までやりました。この記事で […]