私はProject、Client、Taskのようなエンティティを持っていますが、それらのすべてに投稿のリスト(別名ディスカッション)が必要です。問題は、すべてのエンティティ(プロジェクト、クライアント、..)がそれ自身のテーブルにマップされているため、id = 1のクライアントとidを持つプロジェクトを曖昧にするので、そのエンティティを "owner_id" = 1であり、ディスカッションはプロジェクトまたはクライアントに属しているかどうかは分かりません。私は独立したディスカッションエンティティをクライアントと別の独立したディスカッションエンティティをプロジェクトに持つことを避けたいと思います(後で、別のエンティティにディスカッションを追加して、スケーラブルではないため)。私はclientDiscussionとprojectDiscussionを区別するディスカッションにdiscriminator属性(列)を追加できることを知っています。そんなことをするのが正しい方法なのかどうかは疑問だ。あなたは何を変えるのですか?複数のエンティティのディスカッションを設計する方法
0
A
答えて
0
抽象的なエンティティを作成する必要があるように思えます。
EntityType<-Entity<-EntityDiscussion->Discussion
プロジェクト/クライアント/タスクのフィールドどのように異なっていますか?
0
ディスカッションは単一のエンティティについてのみ行うことはできますか?それで、弁別器の使用が私が使用してきたアプローチであれば、明らかな代替品がなぜあなたにとって役に立たないのかを概説しました。
私の本能は現実世界でのことです。ディスカッションは常に1つの種類のものを参照するとは限りません。したがって、トピックエンティティが必要な場合もあります。ディスカッションには多くのトピックが含まれているため、弁別者の必要性が残ります。
+0
はい、ディスカッションは単一のエンティティに属します。私はjiraのようなプロジェクト管理webapp - sometehingに取り組んでいると言います。ユーザーが特定のプロジェクトやクライアントやタスクにコメントを追加する可能性があります。この場合、エンティティ自体(プロジェクト、タスク)がトピックとして機能しています。 – mawek
関連する問題
- 1. Djangoモデルの複数のバリアントを設計する方法
- 2. データベースの設計:複数のテーブルを複数問合せする方法
- 3. Solr - 複数のエンティティのインデックス方法
- 4. PostgreSQLの複数の列の合計を計算する方法
- 5. Sharepointディスカッション掲示板、webpartに設定とルールを複製する
- 6. 複数のユーザーデータベースの設計
- 7. 複数の列の合計値を計算する方法は?
- 8. 複数のエンティティの送信データを印刷する方法
- 9. 複数出力タイプのNetty Serverの設計方法
- 10. JPAエンティティの設計提案
- 11. エンティティのMVCモデル設計
- 12. マルチテナントとCodeFluentエンティティの設計
- 13. HTTP GETの複数のKey-ValueパラメータのREST URIを設計する方法
- 14. エンティティ設計提案
- 15. 複数のアソシエーションを持つdoctrineエンティティのロード方法を修正する方法
- 16. デザインパターン:ゲートウェイ内から複数のエンティティを編集する方法
- 17. Entity Frameworkで複数の関連エンティティをフィルタリングする方法
- 18. 複数のエンティティを出力する方法(oracle sql)
- 19. コレクションに複数のエンティティを追加する方法
- 20. 複数の方法で比較できるオブジェクトをC++で設計する
- 21. 複数のフィールドを持つjavascriptプロンプト・ボックスを設計する方法
- 22. 多数のエンティティ定義に対するsolrスキーマ設計
- 23. 属性を持つ交差点エンティティに関するDTOの設計方法
- 24. DBスキーマ設計 - 複数の多対多のテーブルの設計
- 25. グループで複数の集計関数を使用する方法
- 26. 複数のポータルによるメンバーシップ設計
- 27. パンダの複数の列から複数の列を計算する方法
- 28. 複数のコアでSolrの複製を設定する方法
- 29. RESTfulな設計、などの操作を設計する方法
- 30. ハイチャート複数のシリーズの合計を取得する方法
かなり異なっています。私は本当にクライアントとプロジェクトとタスクが共通の祖先を持つべきだとは思わない。将来、別のエンティティ(祖先を共有しない)にディスカッションを追加すると、問題は解決しません。 – mawek