私には複数の顧客がいて、それぞれが私のISQL(SE)デスクトップアプリのカスタマイズされたバージョンを実行しています。デスクトップアプリをシンクライアントのWinTermに置き換えて、クラウド(SuSEOpenまたはRedHatサーバー上のMyISQLアプリ)に接続したいと思います。これが可能であれば、更新とサポートを簡素化するために、各顧客が私のアプリの1つの標準化されたバージョンを使用することを望んでいます。ただし、データベースを設計するための最良の方法がわかりません。各顧客は独自のdatabase.dbs(DBPATH =)を持っている必要がありますか、それともより良い設計がありますか?
1 に答える
2つのオプションがあり、そのうちの1つはすでに検討済みです。
- 各顧客は、標準名の独自のデータベースを持っています。
- 各顧客は、それぞれに個別の名前を持つ独自のデータベースを持っています。
オプション1の利点は、既存のコードが実質的に変更されずに機能することです。DBPATHの設定が顧客ごとに正しいことを確認する必要があります。欠点は、顧客ごとに個別のディレクトリを作成する必要があることです。ただし、これにはメリットがあります。各顧客が独自のホームディレクトリを持ち、データベースがそのディレクトリにある場合は、顧客Aが顧客Bによって生成されたファイルを表示しないようにする(またはその逆)ことができます。
オプション2の利点は、すべての顧客のデータベースを1つのディレクトリに配置できることです。前述のように、これにより、顧客Aは、顧客Bに属する、表示されるべきではないものを簡単に確認できるようになります。また、コマンドを実行するたびに、デフォルトのデータベース名をオーバーライドする必要がありますsperform
。sacego
または他の何か。
2つの間では、オプション1(異なるディレクトリに共通の名前を持つ個別のデータベース)を使用し、顧客間に堅固な壁を設定します。各顧客は独自のユーザー名とグループを持ち、ディレクトリへのアクセス許可はいかなる種類のパブリックアクセスも回避します。それらはすべて、単一のINFORMIXDIRと関連するフォームおよびレポートを引き続き使用できます。