「AccessとLinux」と言いながら、最近、ほとんどパソコンネタがないので、少し総括的なものを書いてみようと思う。
販売管理システムを自作したわけだが、終わってみて、おっそろしく、手離れの悪い仕事だと思う。よく、こんなものを販売するビジネスが成り立っていると思う。
2000年頃から準備を始めて、未だにテーブルにフィールドを追加することがある。フィールドを追加して特殊な条件で、プログラムを分岐しなければならないというケースが少なくはなったが、未だに無くならない。また、レポートにしても、毎年営業管理方法が変化するので、作表は毎年変わるし、値上げ資料などはまだ、完成したような感じがしない。よりよい管理方法を模索して入力フォームが変わったり、作表もそれに合わせて変わる。
要するに会社が存続する以上、管理方法は変わるし、販売管理システムも変化する。ここで終わりということは無い。「作成期間1年、メンテンス期間1年で5年リース」、なんていうシステムは土台、不満だらけになって当然なのだ。
ということで、結局、少しでも不満の少ないシステムを作ろうとすると、社内で自作するしかない。最近、大企業はSAPの導入が進んでいるようだが、中小企業にSAPは必要ないし、中小企業であるがゆえに現状に合わせた、かゆい所に手が届くシステムが必要で、また、実現可能だと思う。
販売管理システムを自作するに当たってまず、考えなければならないことは、何を使って作るかということだ。とにかく、あまり費用はかけたくない。
まず、データベース。
最初にデータベースをどうするかということが問題だ。Microsoft Access(以下、Access)はマルチユーザーをサポートするということになっているが、どのホームページを見ても、マルチユーザーでAccessを使用することは勧めていない。
2人以上でデータベースを使う可能性があるなら、データベースはAccess以外の別のものを用意すべきだ。Accessはフロントエンドと割り切って考えるべきだ。
データベースサーバーとして何を選ぶべきかとなると、やはり、自分が使っているPostgresSQLを勧める。自分がプログラムを作成した時期にはPostgreSQL以外にもMySQLという選択肢もあったようなのだが、タイミングよくPostgreSQLの教本が発売されたこともあり、これ以外の選択肢は無いのかと思っていた。後から、世界的にはMySQLの方が一般的だという話を聞いたのだが、結局、MySQLはオラクルに買収されてしまい、今後が不安だ。
Microsoftの無償版SQL Serverも魅力があるが、使用制限があるのが気になる。FireBirdも一時期検討したことがあるが、これといったODBCドライバーが無い。(今は定番があるのかもしれないが・・・)
PostgreSQLが良いと思うのは、サーバーOSをLinuxにするなら、パッケージ化されているということもある。MySQLもパッケージ化されているのだが、オラクルの支配下にあるというのが嫌だ。
無償でデータベースサーバーを立てようと思うなら、やはりLinuxのRedHat系を選ぶべきだと思う。何と言っても使い易い。お勧めはCentOSだ。パッケージ化されたPostgreSQLをインストールするなら非常に簡単だ。また、WindowsからPostgreSQLに接続するODBCドライバーも、「日本 PostgreSQL ユーザ会」のホームページから簡単にダウンロードできる。
サーバーとしてのLinuxは基本的にCUIで使う。GUIでは使わない。Windows世代にはキャラクター画面での操作は抵抗があるかもしれないが、タダで使うサーバーなので、あきらめてキャラクター画面での操作を覚えるしかない。しかし、覚える操作はそれほど多くない。
設定ファイルを操作するためのテキストエディッタ、viやEmacs。設定時にはGUI画面を使用しても良いので、Geditも使える。敷居は相当低い。
その他、ネットワークがらみの設定は覚えなければならないのだが、これもそれほどない。
Linuxのネットワーク設定についてはネットにいくらでも資料があるので、特に書かないけれど、せいぜい3つ程度の設定ファイルをさわる程度で、それほど難しくない。
セキュリティーは毎年、厳しくなっているけれど、ファイアウォールさえしっかりしていれば、ローカルのLANではそれほど気にする必要もないと思う。結局、もったいないと思いつつもLinux既存のセキュリティーははずして使うので、はずし方さえわかっていれば良いわけで、これもそれほど難しくない。
後、Linux関係で知ってると便利なのは、telnetとSamba。telnetはWindowsからサーバーを操作する時、わざわざサーバーのところまで行かなくてもよいので、重宝する。Sambaはネットワーク上でデータを共有したり、データの受け渡しに便利。
データベースサーバーについてはこのくらいのことしかない。
販売管理システムを自作したわけだが、終わってみて、おっそろしく、手離れの悪い仕事だと思う。よく、こんなものを販売するビジネスが成り立っていると思う。
2000年頃から準備を始めて、未だにテーブルにフィールドを追加することがある。フィールドを追加して特殊な条件で、プログラムを分岐しなければならないというケースが少なくはなったが、未だに無くならない。また、レポートにしても、毎年営業管理方法が変化するので、作表は毎年変わるし、値上げ資料などはまだ、完成したような感じがしない。よりよい管理方法を模索して入力フォームが変わったり、作表もそれに合わせて変わる。
要するに会社が存続する以上、管理方法は変わるし、販売管理システムも変化する。ここで終わりということは無い。「作成期間1年、メンテンス期間1年で5年リース」、なんていうシステムは土台、不満だらけになって当然なのだ。
ということで、結局、少しでも不満の少ないシステムを作ろうとすると、社内で自作するしかない。最近、大企業はSAPの導入が進んでいるようだが、中小企業にSAPは必要ないし、中小企業であるがゆえに現状に合わせた、かゆい所に手が届くシステムが必要で、また、実現可能だと思う。
販売管理システムを自作するに当たってまず、考えなければならないことは、何を使って作るかということだ。とにかく、あまり費用はかけたくない。
まず、データベース。
最初にデータベースをどうするかということが問題だ。Microsoft Access(以下、Access)はマルチユーザーをサポートするということになっているが、どのホームページを見ても、マルチユーザーでAccessを使用することは勧めていない。
2人以上でデータベースを使う可能性があるなら、データベースはAccess以外の別のものを用意すべきだ。Accessはフロントエンドと割り切って考えるべきだ。
データベースサーバーとして何を選ぶべきかとなると、やはり、自分が使っているPostgresSQLを勧める。自分がプログラムを作成した時期にはPostgreSQL以外にもMySQLという選択肢もあったようなのだが、タイミングよくPostgreSQLの教本が発売されたこともあり、これ以外の選択肢は無いのかと思っていた。後から、世界的にはMySQLの方が一般的だという話を聞いたのだが、結局、MySQLはオラクルに買収されてしまい、今後が不安だ。
Microsoftの無償版SQL Serverも魅力があるが、使用制限があるのが気になる。FireBirdも一時期検討したことがあるが、これといったODBCドライバーが無い。(今は定番があるのかもしれないが・・・)
PostgreSQLが良いと思うのは、サーバーOSをLinuxにするなら、パッケージ化されているということもある。MySQLもパッケージ化されているのだが、オラクルの支配下にあるというのが嫌だ。
無償でデータベースサーバーを立てようと思うなら、やはりLinuxのRedHat系を選ぶべきだと思う。何と言っても使い易い。お勧めはCentOSだ。パッケージ化されたPostgreSQLをインストールするなら非常に簡単だ。また、WindowsからPostgreSQLに接続するODBCドライバーも、「日本 PostgreSQL ユーザ会」のホームページから簡単にダウンロードできる。
サーバーとしてのLinuxは基本的にCUIで使う。GUIでは使わない。Windows世代にはキャラクター画面での操作は抵抗があるかもしれないが、タダで使うサーバーなので、あきらめてキャラクター画面での操作を覚えるしかない。しかし、覚える操作はそれほど多くない。
設定ファイルを操作するためのテキストエディッタ、viやEmacs。設定時にはGUI画面を使用しても良いので、Geditも使える。敷居は相当低い。
その他、ネットワークがらみの設定は覚えなければならないのだが、これもそれほどない。
Linuxのネットワーク設定についてはネットにいくらでも資料があるので、特に書かないけれど、せいぜい3つ程度の設定ファイルをさわる程度で、それほど難しくない。
セキュリティーは毎年、厳しくなっているけれど、ファイアウォールさえしっかりしていれば、ローカルのLANではそれほど気にする必要もないと思う。結局、もったいないと思いつつもLinux既存のセキュリティーははずして使うので、はずし方さえわかっていれば良いわけで、これもそれほど難しくない。
後、Linux関係で知ってると便利なのは、telnetとSamba。telnetはWindowsからサーバーを操作する時、わざわざサーバーのところまで行かなくてもよいので、重宝する。Sambaはネットワーク上でデータを共有したり、データの受け渡しに便利。
データベースサーバーについてはこのくらいのことしかない。