0

かなり要望があります。開発者は、非常に厄介な関係ツリーを持つ複数のレイアウトを持つデータベースを作成しました。別の開発者が入ってきたら、それを見てみましょう。彼は、システムを分解するには時間がかかりすぎて苦痛になるだろうと言いました。修正されるまで回避できるように、スクリプトを作成することを検討してください。ここにジレンマがあります。タブとポータルを利用する多数の異なるページの情報を参照するはずの 1 つのページに情報があります。ただし、すべての情報はユーザー名にリンクされています。このユーザー名は静的/シリアル化されていません。したがって、問題がすぐに把握されない場合、大量の情報がこの人の「ページ」にリンクされている可能性があります。名前が間違っていて、誰かがユーザー名を少しでも変更しようとすると、それはその関係を壊し、新しい関係を開始します。情報が消えることはありませんが、元の名前に戻すまでは基本的にどこかに眠っています。私は実際に情報をエクスポートして、一致しない情報を変更してみました。つまり、名前を Jon.Smith から John.Smith に変更し、その情報をその人の新しい「ページ」にインポートして失敗しました。私の質問は、スクリプトでこの問題を解決できるのでしょうか? 同様に、このスクリプトの作成方法について何か提案はありますか? 申し訳ありませんが、私はデータベース管理の経験がほとんどないため、このプロジェクトが私に降りかかった理由がわかりません。どんな助けでも大歓迎です。しかし、名前を元に戻すまで、基本的にどこかで宙ぶらりんになっています。私は実際に情報をエクスポートして、一致しない情報を変更してみました。つまり、名前を Jon.Smith から John.Smith に変更し、その情報をその人の新しい「ページ」にインポートして失敗しました。私の質問は、スクリプトでこの問題を解決できるのでしょうか? 同様に、このスクリプトの作成方法について何か提案はありますか? 申し訳ありませんが、私はデータベース管理の経験がほとんどないため、このプロジェクトが私に降りかかった理由がわかりません。どんな助けでも大歓迎です。しかし、名前を元に戻すまで、基本的にどこかで宙ぶらりんになっています。私は実際に情報をエクスポートして、一致しない情報を変更してみました。つまり、名前を Jon.Smith から John.Smith に変更し、その情報をその人の新しい「ページ」にインポートして失敗しました。私の質問は、スクリプトでこの問題を解決できるのでしょうか? 同様に、このスクリプトの作成方法について何か提案はありますか? 申し訳ありませんが、私はデータベース管理の経験がほとんどないため、このプロジェクトが私に降りかかった理由がわかりません。どんな助けでも大歓迎です。そして、その情報をその人の新しい「ページ」にインポートすると、結果が失敗します。私の質問は、スクリプトでこの問題を解決できるのでしょうか? 同様に、このスクリプトの作成方法について何か提案はありますか? 申し訳ありませんが、私はデータベース管理の経験がほとんどないため、このプロジェクトが私に降りかかった理由がわかりません。どんな助けでも大歓迎です。そして、その情報をその人の新しい「ページ」にインポートすると、結果が失敗します。私の質問は、スクリプトでこの問題を解決できるのでしょうか? 同様に、このスクリプトの作成方法について何か提案はありますか? 申し訳ありませんが、私はデータベース管理の経験がほとんどないため、このプロジェクトが私に降りかかった理由がわかりません。どんな助けでも大歓迎です。

4

2 に答える 2

0

wchsTech4 さん、あなたの問題は簡単に解決できるので、あなたは幸運です。スクリプトも必要ありません。

最初にファイルをバックアップしてください。それで:

1) 2 つの新しいフィールドを作成します。

  • id (人物テーブル)
    • id のオプション: シリアル番号の自動入力
  • person_id (人物に関するテーブル)

2) person テーブルの新しい id フィールドのシリアル番号を生成します。

  • 個人レイアウトに移動します。
  • 「レコード」 > 「すべてのレコードを表示」
  • ID フィールドをクリックし、[レコード] > [フィールドの内容を置換] を選択します。
  • 「シリアル番号で置き換える」を選択し、デフォルトを受け入れます。次のシリアル番号を更新するには、必ずチェックボックスをオンにしてください。

3) 生成したシリアル番号を関連テーブルに配置します。

  • 関連するレイアウトに移動します。
  • 「レコード」 > 「すべてのレコードを表示」
  • person_id フィールドをクリックし、[レコード] > [フィールドの内容を置換] を選択します。
  • [計算結果で置換] の横にある [指定] を選択します。
  • 左上のドロップダウンで、関連人物テーブルを選択します。
  • id フィールドをダブルクリックします (計算は person::id で、 person がテーブルの名前に置き換えられます)。
  • [OK] をクリックしてから [置換] をクリックします。

4) 関係を変える。

  • [ファイル] > [管理] > [データベース] を選択します。
  • 関係タブに移動します。
  • リレーションシップを名前に基づくものから ID に変更します。

5) すべてをテストします。動作するはずです。

スクリプト、Web サイト、またはここに記載されていないものを変更して、修正作業を進める必要があるような方法で、関連するレコードが作成される可能性があります。それを調べることが重要です。

于 2011-03-29T15:32:12.603 に答える
0

一般的な回答として、ユーザーが FileMaker で実行できること (ユーザーとは非開発者を意味するため、データベース構造の定義、スクリプトの作成などのアクティビティは除外されます) はほぼすべてスクリプト化できます。したがって、たとえば、フィールドの値をリセットすることで問題を「解決」できる場合は、スクリプトでそれを実行できます。

特定の問題に関しては、スクリプトはおそらくレコードをエクスポートする必要はありませんが、FileMaker 内のフィールドの値をリセットできます。これは、変更が必要なレコードをループ処理するか、[フィールドの内容を置換] スクリプトステップを使用して行うことができます。したがって、スクリプトは次のようになります。

Go to Layout[MyLayout] // Go to a layout that is attached to the table you need to search.
Perform Find[Restore] // Restore a find that will show the records you need to change.
Replace Field Contents[Table::Field; "New Value"]

これ以上のアドバイスを提供するには、実際にデータベースを見て、特定のニーズについてさらに理解する必要があります。

于 2011-03-24T19:10:07.153 に答える