日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

从一个需求看问题的无限复杂化和简单化

發(fā)布時(shí)間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从一个需求看问题的无限复杂化和简单化 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一個(gè)需求 如果你一開始的出發(fā)點(diǎn)就錯(cuò)了,那么后續(xù)的設(shè)計(jì)只會(huì)非常復(fù)雜,而且還會(huì)有漏洞,也很難發(fā)現(xiàn),發(fā)現(xiàn)了也很難解決。

先看數(shù)據(jù)結(jié)構(gòu):

A表 主鍵id? ?其他各種字段不重要? ,重要的就一個(gè)字段sort字段

aid1? ?sort=1

aid2? ?sort=1

---------------------

B表? A的關(guān)聯(lián)表 存A的id? ?還有就是C表的id

aid1? ?cid1

aid2? ?cid2

-------------------

C表? 某種數(shù)據(jù)

cid1

cid2

------------------

需求是:A表的sort在同一個(gè)cid下必須唯一

也就是某個(gè)sort例如是1被aid1和aid2占用,但是由于在B表他們是關(guān)聯(lián)不同的cid所以沒事,如果是同一個(gè)cid就不允許。

也就是你入庫(kù)的新增更新的時(shí)候要check.這個(gè)比較簡(jiǎn)單,新增的cids和B表同sort關(guān)聯(lián)的cids比較 只要不一樣就行 ,只要有交集就返回false

Collections.disjoint

?

這里需要注意就是 你更新的時(shí)候 由于sort不變那么顯然是要允許的,這是自己和自己比較,這個(gè)時(shí)候要看新管理的B表我新增的cid有沒有被占用

?

最簡(jiǎn)單的做法是拿sort在A表查aid ,然后拿aids在B表查一個(gè)List<B>

再對(duì)List<B>遍歷,如果aid=更新的aid那么忽略 說明是自己

如果不是? 那么看cid=更新的時(shí)候傳遞的cid,只要有命中那么說明就有重復(fù)的? 就返回false

將更新的cids轉(zhuǎn)為一個(gè)set就行了。

?

這個(gè)問題 如果不是這樣做的 嘗試其他辦法組建各種list然后去重組合各種玩法就復(fù)雜了。

?

這題可以思考下。

?

總結(jié)

以上是生活随笔為你收集整理的从一个需求看问题的无限复杂化和简单化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。