LoginSignup
4
4

More than 5 years have passed since last update.

ファンタジー生産管理システムの開発2.5

Posted at

ファンタジー生産管理システムの開発2の続きです。
WindowsマシンにPostgreSQL 9.4.4をインストールしてみました。
※もともと9.3をインストールしてあったので、各種アンインストール後、postgresユーザーを削除してから実施しました。

TL;DR

PostgreSQL使いやすい!

  • PostgreSQL=BSDライセンスで公開されているRDBMS
  • pgAdmin IIIというGUIツールが付属
    • SQLに詳しくない人でも直感で環境構築&テーブル作成ができる
  • フリーソフトのA5:SQL Mk-2からもDBに接続可能
    • SQLによるデータ操作やテーブル定義書作成などの恩恵あり
  • オープンソースのライブラリNpgsqlを使えばC#からPostgreSQLに接続できる

女騎士さんは「SQL初心者」のスキルを手に入れました

PostgreSQLまわりについてメモ

  • PostgreSQL=BSDライセンスで公開されているRDBMS
  • Oracle、MySQLとよく比較される
  • PostgreSQLはテーブルパーティショニング機能を標準機能として使える
    • 巨大なテーブルに対して設定することはあるかも
    • 古いデータの退避・インデックス作成以外にもパフォーマンスをチューニングする手段があるということ
  • ライブラリNpgsqlについて
    • C#からPostgreSQLのデータを操作するライブラリ
    • http://www.npgsql.org/about.htmlのLicenceおよびNuGetのライセンスを読む限り、BSDライセンス

インストール&環境構築

  • Windowsへのインストールは基本デフォルトのままでNext連打
  • postgresユーザーのパスワードは忘れないようにメモする
    • インストール後、DB作成などはこのpostgresユーザー(スーパーユーザー)で作業する
  • WindowsOSアカウントにもpostgresユーザーを作成する必要がある
  • インストール直後、postgresというDBがあるが、ここにはテーブルを作らずに作業用に別DBを作る
  • pgAdmin IIIで環境構築できる(SQL書かなくても)
    • なぜ象なんだ。かわいいけど
  • 作業用ユーザー作成→作業用DB作成の順で良いはず(いずれもpostgresユーザーで作業。ユーザー=ログインロール)
  • 作業用DBのオーナーは作業用ユーザーにしておく
    • もし、DBの権限とか分からなかったらとりあえず作業用ユーザーに全て与えておく
      • テーブルとか作りたいので
  • 作業用DBを作業用ユーザーで操作する
    • A5:SQL Mk-2からもDBに接続可能
      • SQLによるデータ操作やテーブル定義書作成などの恩恵あり
  • DBの中にはスキーマがある
    • デフォルトでpublicスキーマ
    • 複数のスキーマを持たせることも可能で、テストとかに便利かも
  • 作業用DBにテーブルなどのオブジェクトを作る
    • スキーマを指定はとりあえず意識しなくて良い
    • スキーマ指定しなれけば自動的にpublicスキーマに作られる
  • テーブルなどのオブジェクト作成時の名称は小文字が便利
    • 小文字で作成した場合(test_tableを作成)
      • select * from test_table; → OK
      • select * from TEST_TABLE; → OK
    • 大文字で作成した場合(TEST_TABLEを作成)
      • select * from test_table; → NG
      • select * from TEST_TABLE; → NG
        • 「リレーション"test_table" が存在しません」のようなエラーになる
        • 大文字で作成したテーブルも""で囲めば一応selectできる
  • オートシーケンス付きのテーブルも作れる
    • シーケンスを作成
    • テーブルを作成
    • テーブルのオートシーケンスしたい列の初期値にnextval('シーケンス名'::regclass)を設定する
  • 文字列データは文字列長を指定しないで一律text型でも可
    • 使う文字数があらかじめ分かっているときはcharacter varying型にすると良い
      • DBサイズ見積りの目安になることがある
    • character型を使うメリットはあまりないらしい
      • 使うとしたら'Y'/'N'フラグのときぐらいか
        • そんなときはboolean型使えよ、だと……(くっ、殺せ)

前回のソースを直してみた

ファンタジー生産管理システムの開発2のデータまわりをPostgreSQLに担当してもらった。

GitHub始めました。→こちら
GitやGitHubの作法が合ってるか分からない……。

今後の方針メモ

テーブル名の仮ルール

  • 一時的な表はa始まり(例:一時表atmp)
  • マスタテーブルはm始まり(例:取引マスタmtrd)
  • トランザクションテーブルはt始まり(例:受払履歴treciss)

オークさんと一緒に作る予定

  • 実地棚卸
    • 理論在庫と実在庫の差分が発生する
  • 受払の記録を強化する
    • 工程・製造品と紐付ける
    • 理論値で受払する
  • BOM
    • 理論値で計算するための根拠となる
  • 品目マスタ
    • リードタイム
  • 簡易的なMRP
    • 有効在庫とリードタイムから所要量を計算する
    • 指図を作る
4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4