私は小さなバイオテクノロジー企業で働いており、Google ドキュメントのスプレッドシートに多くのデータを保存しています。これは多くの場合には問題ありませんが、一部の種類の情報 (たとえば、在庫のある細胞株や、それらが保存されている冷凍バイアルやボックスなど) については、実際には最適な形式ではありません。私は MySQL と PHP について少し独学し、関連情報を格納する基本的なデータベースと、それを表示できる単純な Web インターフェイスを作成することができました。もちろん、有用であるためには、ある種のフィルタリング/検索機能が必要ですが、これは私が少し混乱している場所です.
特定の検索について、MySQLクエリを作成する方法と、ユーザーが提供するフィルターを構成するフィールド/述語/値のタプルから取得する方法を認識していますが、正確にはわかりませんフィルタリングを行うレベル。現在、基本的に、ユーザーに表示される各「テーブル」に対してデータベースにビューを設定しています(ユーザーに表示される情報は複数のデータベーステーブルから取得され、1 つ以上の結合が実行されるため、ビューが必要です)。次に、データベースとビューの名前を指定して基本的なクエリを作成し、必要に応じて WHILE 句とすべてのフィルタリング要素を追加する PHP オブジェクトを作成します (たとえば、準備されたステートメントに "WHERE box_number = ?" を追加し、数値 211 を実行関数を呼び出すときに渡される配列)、次にクエリを実行し、結果を HTML テーブルとして表示します。オブジェクトを拡張して、特定の機能をさまざまなテーブルに組み込むことを計画しています。box number
フィールドをクリックすると、冷凍ボックスの内容を表示するページに移動するハイパーリンクになります。
ただし、PHP とデータベースについて学習したのはここ 2 週間だけなので、これがこれを達成するための最良の方法かどうかはわかりません。シスコでこの種の仕事をしている私のルームメイトは、ストアド プロシージャを使用する方がよいと提案しています。私はこれを調べてきましたが、フィルタリングを実装する必要があるように、ストアド プロシージャに任意の数のパラメーターを渡すことができるかどうかはわかりません。また、テーブル/ビュー全体を取得して PHP でフィルタリングを行う方が良いと言う情報源も見てきました。
それで、これを達成するための「標準」または「最良の」方法はありますか?このプロジェクトのテーブルはそれほど大きくはありません。おそらく数百のエントリです。したがって、パフォーマンスは実際には問題ではありません。ほとんどの場合、すべてがかなり柔軟で、データベース構造が変更された場合に簡単に更新できる方法が必要です (将来、ほとんどのテーブルに列/フィールドが追加される可能性があります)。おそらくこれらの方法のいずれかを機能させることができますが、後ですべてをやり直す必要がないように、自分の状況に最適な方法を知りたいです。