Cursor AI編程實(shí)戰(zhàn)-讓AI理解需求,完成庫表設(shè)計(jì)
我會拿了一個我做過的需求舉例,這個需求我在拿到PRD(產(chǎn)品稿)和設(shè)計(jì)圖后就讓AI參與到了整個需求的設(shè)計(jì)和開發(fā)了,過程中大部分工作是AI幫助完成的,但還是需要我們自己在過程中多跟AI溝通進(jìn)行矯正,讓AI的產(chǎn)出能滿足我們的需求。
這里我接到的是在網(wǎng)站上展示訓(xùn)練營課程、課表、以及記錄學(xué)員報(bào)名信息的功能需求。課表在網(wǎng)頁上的展示效果如下:
圖片
給AI講需求和拆分任務(wù)
讓AI完成我們的開發(fā)任務(wù)的首要步驟就是我們需要給AI描述清楚需求,描述完需求和背景后給他一個單一的任務(wù)。
比如描述完需求后讓AI根據(jù)設(shè)計(jì)能滿足我們需求的數(shù)據(jù)庫表結(jié)構(gòu),等數(shù)據(jù)表設(shè)計(jì)完成后再下達(dá)后面的任務(wù),不要想著兩句話就讓AI把所有工作都能給你完成了。
接下來我們給大家演示一下這個需求怎么用AI編程實(shí)現(xiàn),首先我們需要把產(chǎn)品稿里的需求要做的事情描述給AI,并下達(dá)任務(wù),第一個任務(wù)是讓AI根據(jù)需求設(shè)計(jì)出數(shù)據(jù)庫里的表結(jié)構(gòu)。
描述需求的過程中除了用文字外還可以把比較關(guān)鍵的產(chǎn)品原型或者設(shè)計(jì)圖一起發(fā)給AI,如下所示:
圖片
我在這里給AI發(fā)了兩種產(chǎn)品原型圖,然后告訴AI:
我現(xiàn)在需要做一個數(shù)據(jù)表的設(shè)計(jì), 目前的需求是我有一個訓(xùn)練營(未來可能會有多種訓(xùn)練營),訓(xùn)練營有報(bào)名開始和報(bào)名結(jié)束時(shí)間,訓(xùn)練營里的有多個階段課程,每個階段有單獨(dú)的導(dǎo)師和上課時(shí)間安排。 而且訓(xùn)練營也分期數(shù),比如第一期的學(xué)員報(bào)課后,每個階段的導(dǎo)師和時(shí)間安排會給定出來,到了下一期又是另外的時(shí)間。圖片提供的是網(wǎng)站的設(shè)計(jì)圖,請根據(jù)這些信息給出你認(rèn)為能夠滿足需求的數(shù)據(jù)表設(shè)計(jì)
AI 很快幫我設(shè)計(jì)出了表幫我設(shè)計(jì)了:
- 訓(xùn)練營類型:training_camps
- 訓(xùn)練營期數(shù):training_camp_sessions (第一期、第二期什么時(shí)候開始報(bào)名、什么時(shí)候開課之類的信息)
- 訓(xùn)練營課程:training_camp_courses, 主要是訓(xùn)練營里有哪幾門課
- 期數(shù)課程時(shí)間表:session_course_schedules,每一期中各個課程的上課時(shí)間等信息
- 學(xué)員報(bào)名表:student_registrations
讓AI的產(chǎn)出滿足需求
AI整體給出的表結(jié)構(gòu)和關(guān)聯(lián)關(guān)系是沒有什么問題的,不過具體某些字段的定義完全是按產(chǎn)品原型圖上給的例子設(shè)計(jì)的,不符合后期的需求迭代。 所以在現(xiàn)有生成結(jié)果上做了進(jìn)一步溝通,讓AI進(jìn)行調(diào)整
圖片
- 需要給表加注釋;同時(shí)希望訓(xùn)練營表就叫training_camps;表之間不要添加外鍵;同時(shí)狀態(tài)字段不要使用 ENUM,用整數(shù)代替即可。
- training_camp_stages(就是課程表,后來我改名了) 表中的stage_description, theory_percentage, practice_percentage 直接用Varchar類型,名字改成stage_description1,stage_description2,stage_description3.
- session_stage_schedules中不需要導(dǎo)師簡介、線下學(xué)習(xí)天數(shù)、上課地點(diǎn)、詳細(xì)課程安排。 請根據(jù)要求重新生成
最后我又讓AI對訓(xùn)練營價(jià)格、報(bào)名和訂單表的設(shè)計(jì)做了如下調(diào)整
圖片
學(xué)員報(bào)名表需要做如下修改,首先圖中是學(xué)員信息填寫的需求文檔,同時(shí)我還需要設(shè)計(jì)訂單表, 以及訓(xùn)練營需要增加金額,一個是銷售金額,一個是劃線的原價(jià)。
最后這個需求AI幫助我設(shè)計(jì)的表結(jié)構(gòu)如下:

通過上面的過程,大家應(yīng)該能感受到讓AI根據(jù)需求設(shè)計(jì)庫不是一蹴而就的,需要幾次溝通矯正,而且開發(fā)寫代碼階段發(fā)現(xiàn)不合適的地方我們還會對字段進(jìn)行微調(diào)。我感覺AI在這個過程中完成了80%的工作量,我的工作主要是跟他溝通矯正拿到我想要的結(jié)果,以及使用的時(shí)候再進(jìn)行字段的微調(diào)。
記得保存階段性產(chǎn)出
大家千萬記得把表結(jié)構(gòu)的SQL保存到項(xiàng)目里的一個單獨(dú)的文件中,方便后續(xù)讓AI寫代碼或者完成其他任務(wù)的時(shí)候在對話上下文添加數(shù)據(jù)表的信息讓AI理解。
上面這個ER圖其實(shí)就是我讓AI根據(jù)表結(jié)構(gòu)生成的 dbdiagram 的語句,dbdiagram 類似用mermaid生成流程圖的一個工具,有在線版,需要的可以訪問:https://dbdiagram.io/ 。





































