初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2016-10-13 13:53:13

DB
Guest

DB設計の注意点

OS:[7]
FileMaker Ver:[12 ]
この度、作業記録を入力するDBを作成する予定になりましたので、相談させてください。

作業はA~Zまであります。
各作業毎に入力レイアウトが必要で、基本的にはA⇒Zに順番に入力します。
フィールドは各作業毎に20個ほどあり、半分はマスターDBのルックアップです。
これ以外に計算フィールドがあるので軽く500個を超えます。
マスターDBは全ての入力レイアウトに関係します。
入力とは商品コードでリレーションしています。
レコードは重複しない計画番号毎に作成し、月に800レコード程増えます。

心配なのは、フィールドが多いので入力レイアウトは作業毎にテーブルを分けたほうが良いと思うのですが。
如何でしょうか。
他、注意しないといけないことは?

#2 2016-10-13 19:23:53

旅人
Member

Re: DB設計の注意点

1テーブル500フィールドと、26テーブルに20フィールドずつかぁ・・・
最初どちらかで始めて、別方式に変更したくなった場合に
その作業が楽になりそうな方から始める・・・?
どっちも大変かぁ・・・

レイアウト作成時に500フィールドから選ぶのは困難だし
やっぱ別テーブルかな??

Offline

#3 2016-10-14 08:58:52

Shin
Member

Re: DB設計の注意点

入力用のテーブルは、作業工程名を加えて1テーブルでも良いのでは。マスターからのルックアップは、関連レコードとして扱っておけば良いので,敢えて作らない方向で考えられるかも。
行程の入力のレイアウトにもよりますが、表示が共通ならば、1レイアウトで表示のみを切り替えて使う事も考えれば簡便になるかも。

どちらにしても、もう少し具体的な内容が必要でしょう。

Offline

#4 2016-10-14 09:54:08

DB
Guest

Re: DB設計の注意点

旅人さま
市販テキストを読みましたが、500フィールドもあるので別テーブルの方が良さそうに思えました。

Shinさま
ルックアップはFMProの良い所と思っていましたが、関連レコードの方が良いのでしょうか。
表示が共通にできる入力レイアウトはありません。
マスターは複数作成しそうです。
マスターAは全ての入力レイアウトに必要ですが、他マスターの利用は入力レイアウトが個別になりそうです。
入力は複数のiPadやPCで行い、計画番号はバーコード入力で検討しています。
具体的な内容とはどのような情報でしょうか。

#5 2016-10-14 11:52:43

チポ
Member

Re: DB設計の注意点

索引を必要としないのなら、
Shinさんの通り、ルックアップを関連フィールドの配置としていいでしょう。

これが出来ればフィールドがだいぶ減りますよね。


別テーブルにしたところで、
管理すべき量は変わらないのでは。

逆にリレーション等、その量は増えますよね。
1テーブルに押し込めるのもいいのでは。

Offline

#6 2016-10-14 14:01:30

Shin
Member

Re: DB設計の注意点

後で、その値をどう使うかですね。

Offline

#7 2016-10-20 09:59:54

DB
Guest

Re: DB設計の注意点

チポ wrote:

索引を必要としないのなら、
Shinさんの通り、ルックアップを関連フィールドの配置としていいでしょう。

これが出来ればフィールドがだいぶ減りますよね。


別テーブルにしたところで、
管理すべき量は変わらないのでは。

逆にリレーション等、その量は増えますよね。
1テーブルに押し込めるのもいいのでは。

関連フィールドの配置の場合は、例えば田中さんが結婚で山下に変わった場合、作成済みレコードも山下に代わってしまいますよね。
変えたくない場合はルックアップで良いですよね。

値をどう使うかですが、紙記載からFMにするので、この部分はまだ活発に議論できていません。
取りあえず全作業から抜粋したフィールドを一覧表にしたり、各作業毎に日報を作成しようと考えています。

#8 2016-10-20 10:19:14

チポ
Member

Re: DB設計の注意点

> 田中さんが結婚で山下に変わった場合
これをレコードの書き換えではなく新規レコードとすれば、
リレーションに日付期間の照合を加えて参照できます。

Offline

#9 2016-10-21 09:35:28

DB
Guest

Re: DB設計の注意点

チポ wrote:

> 田中さんが結婚で山下に変わった場合
これをレコードの書き換えではなく新規レコードとすれば、
リレーションに日付期間の照合を加えて参照できます。

10/01にA作業レイアウトで作業者を田中で入力。
10/02に山下に変わった場合、作業者マスタの作り方とA作業レイアウトの入力方法はどうすれば良いのでしょうか。
作業者名はドロップダウンで選択予定でした。

#10 2016-10-21 10:01:00

チポ
Member

Re: DB設計の注意点

A作業に日付フィールドを作り、作業日を入力します。
作業者マスタに適用日を作り、そのレコードが有効になった日付を入力します。

従来のレコードには、作業の全レコードの一番古い日付以前を入力しておけばいいでしょう。

A作業と作業者マスタとのリレーション

    A作業             作業者マスタ
  作業者コード = 作業者コード
  and
         作業日 >= 適用日
                        適用日の降順ソート指定

これで、直近のマスタを参照できます。


> 作業者名はドロップダウンで選択
これは、
マスタに現役フラグを作り、
そのリレーションの動的値一覧にすれば現役のみリストすることが出来ますね。

Offline

#11 2016-10-25 10:42:02

DB
Guest

Re: DB設計の注意点

チポ wrote:

A作業に日付フィールドを作り、作業日を入力します。
作業者マスタに適用日を作り、そのレコードが有効になった日付を入力します。

従来のレコードには、作業の全レコードの一番古い日付以前を入力しておけばいいでしょう。

A作業と作業者マスタとのリレーション

    A作業             作業者マスタ
  作業者コード = 作業者コード
  and
         作業日 >= 適用日
                        適用日の降順ソート指定

これで、直近のマスタを参照できます。


> 作業者名はドロップダウンで選択
これは、
マスタに現役フラグを作り、
そのリレーションの動的値一覧にすれば現役のみリストすることが出来ますね。


作業記録と作業者マスタをリレーションしました。
作業者マスタには田中と山下を同じコードで登録しました。
   適用日          作業者コード  作業者
   2016/01/01    12345              田中   
   2016/10/02    12345              山下     
これにより作業記録には作業日で田中から山下を切り替えることができました。

作業者マスタに現役フラグのフィールドを作成し、山下は現役と入力しました。
「そのリレーションの動的値一覧にすれば現役のみリストすることが出来る」
は具体的にはどうすれば良いのでしょうか。

#12 2016-10-25 11:09:57

チポ
Member

Re: DB設計の注意点

A作業でグローバルフィールドを作り、「現役」と入力。

このフィールドと、マスタの現役フラグとでリレーションし、
その動的値一覧にすればいいですね。


動的値一覧のヘルプです。12と変わりません。
http://www.filemaker.com/help/14/fmp/ja … tml#108748

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 546.25 KiB (Peak: 567.16 KiB) ]