みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
超初心者です。ファイル―メーカー15です。
自分で調べてみたものの理解乏しく混乱してしまいました。
初歩的質問かもしれませんが、よろしくお願い致します。
テーブル:商品マスタ
フィールド:店舗区分、商品コード、JANコード、商品名、単価
テーブル:A店
フィールド:店舗区分(固定値:A)、商品コード、JANコード、商品名、単価
テーブル:B店
フィールド:店舗区分(固定値:B)、商品コード、JANコード、商品名、単価
商品マスタの店舗区分と商品コードに対し、A店・B店それぞれリレーションを張っているのですが、
例えば商品マスタにレコードを追加し、店舗区分に値をAと入力し、その他のフィールドの商品情報を入力した際、
店舗Aのテーブルにも情報が追加されたり、逆にA店で単価を更新すると、商品マスタの方でも単価が更新されるような仕組みにしたいと考えていますが
期待通りの結果にならず困っています。
お知恵をお貸し下さい。
よろしくお願い致します。
テーブル:A店
テーブル:B店
は何故必要なのですか。
Offline
商品マスターだけで十分だけかもしれませんね。
各店舗で参照する時には、店舗区分でデータを検索させておくと良いでしょう。
理論的には、
テーブル:商品マスタ
フィールド:商品コード、JANコード、商品名
テーブル:単価マスタ
フィールド:店舗区分、商品コード、単価
という2テーブル構成にして、商品コードでリレーションを張ります。各店舗で価格を参照したい時には、単価マスタで検索した上で、商品名等は関連レコードとして参照します。
Offline
旅人さん、Shinさん、ありがとうございます。
A店とB店を分けている理由なのですが、内々の話で恐縮なのですが、それぞれの店で扱っている商品が同じだったり別だったりと分かれておりまして、
それだけなら良いのですが、本部(商品マスタ)に連絡なしで商品が削除されていたり、情報が更新したりする事が頻繁にある為、各店データの取得はできるのですが、
どれが消されたのか、追加されたのか、更新されたのか等、わかる環境にしたいのですが、専門用語もよくわからず困ってしまい、ご質問させて頂きました。
途中で送信してしまいました・・・
各店のデータをShinさんのお教えのように商品マスタ1本で管理する場合、インポートを自動で行うのは難しいでしょうか?
イメージでは、A店のデータをインポートした後で店舗区分に一括でAを入力する、とかでしょうか?
それぞれの店データは、ファイル名は別なのですが、中の項目やデータの並び等は同じで区別がつかない状況です。
今のデータの統合法は、その通りです。(インポート直後に全置換を使うと良いでしょう)
> 商品が削除されていたり、情報が更新
商品マスターのレコードの追加は各店舗でも出来るようにしておかないと不便でしょうが、登録してあるデータの削除、編集は禁止にしておけば良いです。削除は、例えば、価格マスターに期限をつけておき、その期限を入力すれば、取り扱い終了、という運用にすると良いかと思います。
編集、は、どの範囲でしょうか。価格だけなら、新しい価格レコードを作らせ、古いレコードを終了にしておけば良いです。
Offline
Shinさんありがとうございます。
編集範囲ですが、商品名、単価となります。商品名はセール等の文字が挿入されたり消したりされます。
言葉不足でした。大変申し訳ないです。
A店はA店で、B店はB店で商品管理用の同じ端末があり、それぞれから商品の追加・削除・更新が行え、同様に本部でも行えます。
Shinさんのお教えのように削除・編集の禁止が行えればOKなのですが、その端末に禁止制限が設けられない為、
制限するにしても声掛けするくらいで、それもうっかり忘れがあるかもしれないので、難しいです。
本部の端末では各店のデータは取得できますが、誰がどのタイミングで等、商品の追加・削除・更新の履歴までは確認できない仕様の為、
A店でデータが削除されたのであれば、本部にとりまとめられている同じデータも削除等がされたり、無断で価格が変更されても
一致が図れたりされる仕組みが良いと考え、悩んでおりました。
1本化のインポート方法、操作しながら、何とか分かってきましたが、頭が固いのか、鈍いのか、
上記を解消する為には、これからどうすればよいのか詰まってしまいました・・・
商品の追加情報は、商品テーブル上に,自動入力で作成時のタイムスタンプ,アカウントやユーザー名を取得しておくフィールドを作れば良いです。ただし、マスターデータの修正は,原則店舗ではさせず、本部で修正をする様にします。
商品テーブルのレコードの削除は原則行なわず,上に書いた様に,単価テーブルで終了情報を設定することにして見えなくすることで十分で,その入力を行なったタイムスタンプとアカウント等を,Evaluate() 関数を使って取得するフィールドを作っておけば良いです。
商品名そのものは,編集禁止にした方が良いでしょう。セール等での一時的な変更は,別のフィールドへ商品名をコピーして,そちらで行なわせましょう。
単価の修正は,新しい単価レコードを作る事にします。単価テーブルに、自動入力で作成時のタイムスタンプとアカウントを取得するフィールドを作っておけば,修正情報が残ります。このレコードは,もちろん削除禁止です。
あと、全体的な運用が解りませんが,本部と各店舗はネットワークで繋がっているのでしょうか。遠隔地点でしたら,VPNなどを張ってあるのでしょうか。そうで無いと,1ファイルを共有した運用は出来ません。
Offline
Shinさん、何度もご返事頂きまして、本当にありがとうございます。
お教え頂いた内容、メモ帳に貼り付けて調べ調べ、作っていきたいと思います。
親身に丁寧にお教え頂いた事、心から感謝申し上げます。
本当にありがとうございました。
アクセス権を利用した運用制限が必要なので、ちょっと複雑になりますが、上の要素を組み込んだサンプルを。
https://www.dropbox.com/s/grhkcn7nxyszz … 2.zip?dl=0
アカウントは、「本部」(本部)、「A」(店舗A)、「B」(店舗B)と、管理者の「admin」(スクリプトの[アカウント]から再ログイン可能)
店舗からの価格編集は、価格をクリックすると変更用のダイアログが表示されます。本部からは、ポータルの中への行の追加で可能です。
店舗からの取扱中止は、中止をクリックすると、扱い中止になり、リストから消えます。本部からは、ポータルの最上行の中止をクリックです。
新規商品や再取扱商品は、JANコードで照合し、新しい価格を設定します。
そのそれぞれに、編集の日時、アカウントが記録されて言います。その結果も、本部ですぐ把握で来ます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 541.16 KiB (Peak: 562.07 KiB) ]