みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
質問お願いします。
FilemakerPro19 FilemakerServer19
松 竹 梅 と三つのファイルがあり、その中の A B Cテーブルの各 区分 フィールドに
自身と違うものが入っていたら移動させるということをしたいです。
(例)松ファイルのAテーブル::区分が 竹 だったらそのレコードデータを竹ファイルの同じAテーブルに移動
毎日FMSのスクリプトスケジュールでデータ移動チェックを行うのですが
松ファイルに接続しAテーブルに移動 →区分で竹を検索→区分に竹があったらcsvエクスポート→竹ファイルに接続Aテーブルに移動→csvファイルがあればインポート
これをファイル組み合わせ毎に全てスクリプト記述するしか方法はないでしょうか?
実際は7ファイルあり、確認テーブルも4あり、更にエクスポート後は元ファイルのレコードの削除もするため、結構なスクリプト記述量になるなと思って質問させていただきました。
何か他の方法がありましたらお教えください。宜しくお願いします。
具体的な運用がさっぱりわかりませんが、パッと見た感じ、データベースの設計の根本的なところが誤っています。
そのような基本情報は1ファイルに集約し、それ以外の部分を別テーブル(ファイル)へ連携させて保存していきます。この構造ですと、すべてのテーブルは、基本になるテーブルを見ますので、データがテーブルごと存在しない、ということはあり得ません。
それと、データを移動、ということは、元データは削除する、ということですか。
Last edited by Shin (2021-04-09 15:42:11)
Offline
属性ごとにファイルを作ってるので、データベースになってませんね。
>>Shinさん himadaneeさん
松 竹 梅のファイルはチーム毎といった感じでファイルは絶対的に分ける必要があります。
移動させたいデータは個人の成績のようなものを移動といった感じです。
データを移動は元データはレコード事削除するといったものになります。
ファイル自体はチーム成績的なもので、同じ構成のものをコピーして使っています。
チーム毎に1ファイルに接続させてその中でソートや絞込みが出来れば一番楽なのですが、それが出来ない理由があるので
今の構成のまま、何かしらな良い方法は無いものかと・・・。
ファイルパスは変数で指定できるので、全部同じ構造ならテーブル数のスクリプトで済むと思いますが、それを各ファイルに入れなくてはいけないので結局ファイル数xテーブル数ぐらいになりそうです。
区分の値で検索
その値がファイル名と違えば、そのファイルのインポートスクリプトを実行してレコード削除
そうでなければレコードを対象外に
対象レコードがなくなるまでループ
テーブル名は変数にできないので、CSV介さないとだめなのかな?
絶対的に、自分のグループ以外のレコードを閲覧できない という状況が作れても、ファイルを分ける面倒な運用を選択しますか?
データベース設計の常識では、アクセスを許可する情報の範囲を厳密に定めて、それ以外の情報は見ることができないように設計します。また、それが可能な仕組みを持っています。
それでもいいのでしたら、各レコードが持っている属性データを書き換え変更するのみで、関連するレコードを含めて、全てが移動したのと同じ効果がでます。これは、その時点で、そのレコードの属性フィールドへアクセスできるユーザーが作業可能です。(自分のグループのメンバーを移動させることができるが、別のグループメンバーを引き入れることは無理です)
もしファイルを分ける理由が回避不可能なものでしたら、全部のファイルを開くことができるアクセス権をもつ管理者が作業しないといけないので、この管理者に大きな負担がかかるのでは。
また、移動させるデータは、テーブルを跨いで複数あるのでは。そうでしたら、かなり面倒な処理になります。
Last edited by Shin (2021-04-12 16:22:25)
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 513.16 KiB (Peak: 517.7 KiB) ]