いつもお世話になっております。
社内の商品をの生産を管理するために、生産管理予定表を作成し運用しております。
利用しているデータベースは、MySQL5.7.xを利用し、プログラム言語は、Javaを利用しております。
生産管理予定表を更新する管理者と、生産を行う作業者の両方から利用されております。
生産管理予定表は、複数の設備ごとに用意しております。
生産予定を管理するテーブルを一つ用意し、各設備ごとの製品に対して優先順位を割り当て
更新時に、対象設備の全データを更新し優先順位を振り直しています。
作業者は優先順位の高い順から作業し、管理者は基本的には優先順位の低いデータを登録しています。
順番性を担保するために、更新については先勝として後からデータを更新できないようにしております。
運用では、先勝ちが多発しており利用者から少し不満の声があり、改善できないか検討しております。
設計が悪いこともありますが、RDBを利用する上では、こういった状況を回避するのは難しいのではないかと思いました。
どんな方法にしても、データの不整合を防ぐために、どちらかに対して再操作を促す必要があるかと思いますが、
極力、最低限にしたいと考えております。
RDB以外でも、こういった状況を解決するデータのもたせ方がございましたら、
アドバイスいただけないでしょうか?
大変、お手数をおかけしますが、よろしくお願いします。
=== 追記 ====
DDL を記載させて頂きます。
サンプルとなりますが、下記のようなテーブルでございます。
CREATE TABLE products (
goods varchar(30),
order_no int,
created_at datetime
)
ストレージエンジンは、InnoDBを利用しております。
「更新については先勝として後からデータを更新できないように」という箇所ですが、
説明が不足しており申し訳ございません。
開発しているWebシステムの作りに引きづられてしまっているので、このような作りになってしまっているのですが、
1.管理者にて予定表作成画面を開き製品を追加したり順番を変えたりし予定表を作成
2.更新ボタンにて、POSTを行い対象の設備の予定表を更新
→ 管理者が予定表を作成している最中に、現状システムに登録されている予定表に変更があれば、予定表は更新させない。
→ 作業者基本的に、削除するのみなので、データあれば、削除なければ何もしない
と、いった作りになっております。
作業者からの更新頻度が高いため、管理者の更新処理が行えず、何度もやり直しの状態が発生しております。
回答2件
あなたの回答
tips
プレビュー