簡體   English   中英

添加電影的存儲過程

[英]Stored procedure for adding a movie

我要創建一個用於添加電影的存儲過程(我正在處理一個存儲和列出帶有信息的電影的應用程序),在開始之前我想要一些關於如何創建它的輸入。

我有以下表格:

  1. “電影”(MovieID,姓名,年份,長度,摘要)
  2. “流派”,這是一個流派列表(GenreID,流派)
  3. “MovieGenre”,這是電影及其類型的列表。 (MovieGenreID,GenreID,MovieID)
  4. “MovieRole”,存儲演員/導演等的名稱(MovieRoleID,Name)
  5. “MovieRoleType”,存儲電影的不同角色,如actor(MovieRoleTypeID,MovieRoleType)
  6. “演員”,這是電影演員的列表(CastID,MovieRoleTypeID,MovieID,MovieRoleID)

添加電影時,您必須提供有關電影的所有信息,以及至少一個電影角色(例如演員)和流派。 我應該創建多個SP:s並從一個SP執行它們,或者我該怎么辦?

注意:我不是要求你為我編寫整個SP,只是要求一些指導。

提前致謝!

我將創建幾個單獨的存儲過程,然后使用事務來確保插入一起提交。

你將需要單獨的SP來添加額外的演員,流派等。對於我來說,擁有一個大的SP以及調用SP來添加新電影的所有支持代碼對我來說沒有多大意義。 + role + genre然后有單獨的SP(和支持代碼)來復制角色和流派的添加。 使用事務將有效地將所有單獨的SP包裝成單個操作,使其看起來幾乎像單個SP,但也可以靈活地使用單個SP。

無論如何,您將需要支持代碼來調用每個SP。 代碼將驗證參數,處理錯誤,設置SP的值等。因此,您需要在應用程序中使用AddRole,AddGenre等功能。 我寧願在我的代碼中有一個名為AddMovie的函數,它啟動一個事務,然后調用這些函數中的每一個。 將工作分解成小的,易於測試的部分,然后通過調用您知道工作的較小部分來構建更大的功能(AddMovie)。 構建一個調用不同SP的AddMovie函數要復雜得多,這個函數基本上與你已經完成的工作有很多相同之處。

我會為每個實體創建一個sproc,然后可能將它們包裝在一個名為“AddNewMovie”的單獨SP中。

AddNewMovie只會調用其他sprocs。 要獲得額外獎勵,請將它們包裝在交易中。

如果您不熟悉交易,MSDN有一篇非常好的文章

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM