私はオンラインプロジェクト資産トラッカーを作成していますが、私はMySQLが初めてです。このようなことのためにプロジェクト、ユーザー、資産を追跡する最良の方法は何でしょうか?私は資産、ユーザー、およびプロジェクトの3つのテーブルを持っています。ユーザーはプロジェクトと資産を所有する必要があります。アセットは複数のプロジェクトのメンバーになる可能性があり、プロジェクトは複数のユーザーが見ることができるはずです。階層型MySQL資産トラッキングのベストプラクティス
私が考えた最初の方法は、各プロジェクトに、それがリンクされているすべてのアセットのIDを持つミディアンテキストフィールドを持つことでした。各アセットには、それがリンクされているすべてのプロジェクトIDを持つ中間テキストもあります。私は実際にテキストを解析しなくても、それが添付されているプロジェクト/アセットを調べることなく、検索を行うことはできないので、これは問題です。
解析しない別の解決策は、リンク情報のテーブルを別々にすることです。たとえば、アセットID、プロジェクトID、およびユーザーIDが含まれているアセットテーブルがあり、プロジェクトまたはユーザーの場合は、そのテーブルに別のエントリがあります。ただし、このソリューションには複数のエントリを持つアセットがあります。
これを実行する別の方法は、プロジェクトが作成されるたびにサイトがテーブルを作成し、資産とユーザー情報を格納することです。何千ものプロジェクトがあるかもしれないので、これはデータベースをかなり素早く集めてくれます。テーブルを作成することは、私が知る限り、エントリよりも重いです。
私は第2の解決策に傾いています。より良い方法を知っている人はいますか?
あなたの質問のタイトルは、階層的なデータ(非常に複雑なトピックです)を扱いますが、あなたの質問の本文にはどこにも言及されていません。 –