java - 模型关联太多,如何分离做到单一化
天蓬老师
天蓬老师 2017-04-18 09:27:17
0
2
310
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(2)
大家讲道理

終於可以來吐槽一下了,對於已經長時間不再使用 ORM 的人來表達一下我的看法。

經常看到寫Java 後端的人,寫了一大堆模型對象,各種繼承和組合都用上了,如@chanjarster 所說的,一對一,一對多,多對多,單項雙向的,直接繞暈了...

其實個人覺得ORM 是一个很糟糕的发明,ORM 唯一的好处就是不用考虑 SQL,简直哭晕,SQL 是一个多么好的东西,现在对于大部分的 Java 程序员来说,写个 SQL 是一個很糟糕的發明,ORM 唯一的好處就是不用考慮SQL,簡直哭暈,SQL 是一個多麼好的東西,現在對於大部分的

程式設計師來說,寫個SQL 應該不是大問題,比在這裡去背各種物件映射規則簡單多了...

ORM總結一下

的缺點
  1. 效能不高,即使有成熟的框架,有的時候我只要存取一個屬性,還是裝載了整個物件的資料。 (PS:可能可以配置,那學習成本也很高)
  2. 不夠靈活,很多業務需求,都是需要連表查,呼叫函數,預存程序...
  3. 抽象太麻煩,直接繞暈了

ORM綜上,如果你認可的話,那就放棄

替代方案:
  1. MyBaits 直接写 SQL使用

    ,靈活控制
  2. NOSQL 数据库,把对象转换为 JSON 数据,可以直接存储,如 MongoDb使用

🎜
大家讲道理

你這個問題好大,簡單來說就是搞清楚Model和Model之間的關係,有三維

  1. 「引用關係」還是「擁有關係」。如果A擁有B,那麼A刪除的時候B也要跟著刪除。如果A引用B,那麼A刪除了B不用跟著刪除。這個是根據業務來判斷。

  2. 單項還是雙向。這個是根據業務來,你自己判斷,不過要記住一點,在「引用關係」下,盡量保持單向。在「擁有關係」下,雙向是可以的。

  3. 一對一、一對多、多對一、多對多。這個不多講了,不過有一點要注意,盡量避免多對多,如果用了多對多多問自己是否一定要這麼幹。

如果一定要問有什麼方法論,可以看看DDD(Domain Driven Design)裡的聚合根(Aggregate Root)概念。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!