2011-07-27 17 views
1

私はあらゆる種類の測定値を集めて表示する製品を持っています(それには入っていません)。表示部分は、期待されるように、Symfonyを使って構築されたデータベース+ウェブサイトです。{REST API、ウェブサイト} - > {データベース}、{ウェブサイト} - > {REST API} - > {データベース}のいずれかが良いですか?

ただし、データを第三者に公開するためのAPIを作成している可能性があります。

ここでは、ウェブサイトとAPIの両方をデータベースの上に構築するか、上にAPIを作成し、APIを実装するかを選択できます。

そうでなければ、スキーマが変更されるたびに(それは数回でもよい)、APIとウェブサイトの両方のモデルレイヤーを適応させる必要があるため、後者を好むでしょう。 私が後者を持っていれば、明らかにAPIモデルを適応させるという利点があります。 API契約が同じであれば、ウェブサイトは適応する必要はありません。

ただし、パフォーマンスには明らかに欠点があります。 ウェブサイト< - >データベース、ウェブサイト< - > API < - >データベースでは、最初のものが明らかに最も高速です。

私の質問は:このトレードオフに対するあなたの意見は何ですか? 私はすべてのマシンが同じLAN +上にあるので、パフォーマンスがほぼ均等になることを期待しています。キャッシュがあります。その場合、開発の容易さが確かに私の人生を楽にしてくれます:-)

あなたの意見や経験を楽しみにしています!

答えて

2

時期尚早の最適化のケースがあった場合、これはそれです!あなたはもっと情報なしで答えを知るつもりはないし、2つの間の性能の違いがあなたのドメインでは無関係なほど無視できるほどだと思う。

IMOの最善のアプローチは、両方のアプローチを使用していくつかのモデルをスパイクして、どこでそれが得られるかを確認することです。

+0

両方の回答(あなたとdjna)は私が思っていた/思っていたのですが、答えを探す際にはもっと多くの否定的な声がありました。私はスタートアップで働くので、開発のスピードは私にとって非常に重要な要素です。パフォーマンスの差がごくわずかであれば、私の選択は確かになされます。つまり、APIの形でDBを囲む1つのレイヤー、そのAPIに対して書かれた他のすべてのコンポーネントです。 – Dieter

1

現代の多くのウェブサイトでは、JavaScript(AJAXなど)を使用し、APIへのサービス呼び出しを行っています。このアプローチをとった場合、慎重に設計され再利用可能なAPIレイヤーをDBの前に置くだけです。

私はここに余計な努力がほとんどないことを知りました。私はあなたに顕著なパフォーマンス上の罰則が課せられると懐疑的です。

1

あなたのAPIが自分自身で使用されるよりも、他の人によって使用可能になるようにする良い方法はありません。私はウェブサイト - > API - >データベースに行くだろう。それを一度書いておけば、いつでもそれを調整し、後で「チート」することができます。

関連する問題