私は現在、私のウェブサイトの構造設計に関して行き詰まっています。現時点では、オブジェクトを使用してサイトの構造を簡素化しています (人物オブジェクト、当事者オブジェクト、役職オブジェクトなどがあります)。理論的には、これらのそれぞれは、データベース。
私が学んだことから、OO Design は物事をシンプルで使いやすく実装しやすくするのに適しています。これには同意します。これにより、コードが非常にきれいになり、保守が容易になりますが、私が混乱しているのは、その方法です。オブジェクトをデータベースにリンクします。
個人ページがあるとしましょう。1 つの mysql クエリに相当する人物オブジェクトを作成しますが (これは合理的です)、その人物は複数の役職を持っている可能性があり、それらを取得して 1 つのページに表示する必要があります。
私が現在行っているのは、mysql からデータを取得し、データを配列として渡す、行ごとに個別の位置オブジェクトを作成する person オブジェクトからgetPositionsというメソッドを使用することです。これにより、クエリは最小限に抑えられます (1 ページに 2 つ) が、これは恐ろしい実装のように思えます。複数の場所) しかし、別の方法はもっと悪いです。
この場合の代替手段は、必要な ID を取得してから別の位置を作成し、ID を渡して、コンストラクターでデータベースから行を取得することです。ページごとに 20 の位置がある場合、すぐに合計できます。ページごとのクエリ数が多く、CPU 使用率が高いことで、Wordpress がどれだけ批判されているかについて読んだことがあります。この場合、もう 1 つ考慮する必要があるのは並べ替えです。この方法で行うと、PHP を使用してデータを並べ替える必要があります。これは、mysql でネイティブに行うほど効率的ではありません。
もちろん、ページはキャッシュされます (キャッシュされる可能性もあります) が、私には、これは貧弱に構築されたアプリケーションの不正行為のように思えます。この場合、正しい解決策は何ですか?