2011-08-09 10 views
0

マニュアルを読んでチュートリアルを見たことがありますが、この点についてはまだ分かりません。コアデータアプリケーションを構築する場合、データ構造をSQL DBまたはOO設計として設計する必要がありますか?

アプリケーションでCore Dataを使用している場合、プロパティの1つ(DBの列)がタイプフィールドであるオブジェクトがあるとします。 SQLでは、私は型を持つ別のテーブルを行い、それらの間に多対1の接続を行います。

ここで、チュートリアルでは、コアデータがSQLiteではないと言います。私はこれをOOPオブジェクトの表現と見なすべきです。

私はSQLと同じようにする必要がありますか?型テーブルとオブジェクトテーブル内の型テーブルの外部キーであるフィールド、または親エンティティを作成し、それから継承して、必要な各タイプの新しいエンティティ(クラス)を作成する必要がありますか?

SQL DBは、OOPスキーマを表現しているため、継承の難しさを理解することができません。可能であれば、タイプエンティティでそれを行うのは、私の目でははるかに良いです...

私はこれについて間違っていますか?

が私の意見では、 エレズ

答えて

1

をありがとう、これらは難しいものです。いつでもデータベース設計に戻ることができます。別の 'テーブル'を使う方が良いかもしれませんが、サブクラスを使うこともできます。多分あなたはItemクラスを持っていて、それは異なるタイプを持つことができます。次に、CarItemHouseItem ...のサブクラスを作成することができます。それぞれは、特定のタイプのItemクラスを表します。

+0

ありがとう、これはまさに私が質問で尋ねたものです。タイプの事柄で各クラスを分離する唯一のことがあれば、なぜこの方法で実装するのですか?他の方法ではありません。あなたが親クラス(Personと言う)にちょっとした抽象データを持たせ、抽象クラスであろうとなかろうとする多くのタイプのサブクラスを持つとき、私は理解して、それをOOP方法でやったでしょう、意味がありますが、すべてのアイテムのプロパティがすべて同じ方法であり、その上に遅延がある場合は、SQLの方法はどうですか?これは古典的な継承ではありません。 ... – Erez

+0

もう少し考えてみたら、私はあなたに指摘したと思います...私は、SQLの表現としてコアデータを見るべきではないので、ItemとItemサブクラスはうまく動作します。もっとうまくいくように思えますが、もっと簡単に文脈でそれを使用する方法がわかります。私は同じ構造を使ってアンドロイドのためにそれを実装する問題を参照してください、Androidで私はコアデータデザインではなくSQLを使用する必要がありますが、私は何ができますか?ありがとうございました、 – Erez

関連する問題