我有一個場景,其中有一個公寓,每個公寓都有我的桌子上被稱爲「物業」的單位。每個單位可以有多個電器,如AC,電視,冰箱等。我們正在維護一個電器主表。該場景的T-sql查詢將會是什麼?
說用戶已經購買了像電視,AC和CFL燈泡那樣的房子的一些項目。所以他會在第一次進行一個插入操作,在該操作中插入諸如ApplianceId,DateOfPurchase,產品序列號,PropertyId(單位ID)的詳細信息。直到此爲止,我們沒有問題。
現在我們的QA拋出了用戶輸入錯誤的序列號到電視機的情況。現在他想更新記錄。但是,在與來自下列條件:
該設備的序列號必須是唯一的,但在兩個不同的設備可能有相似的序列號,如果在我的公寓有4個家電外面我有兩個吊扇,冰箱和AC,那麼1個吊扇和AC的序列號可能相同,但是兩個吊扇序列號不能相同。
該檢查應對所有屬性進行。這在整個表格中應該是適用的。它不應該是財產。 這就是說,如果我有一個交流與串行#1234然後,這是不可能的,所以SO大師喬恩Skeet也可以有串行#1234 AC。他可以使用相同的序列號來添加Refridgrator。注意我們使用的是普通數字形式的序列號,如123456789901。不允許任何字符。
請幫助我,並告知是否有任何事情不清楚。
並將與ORMs更好地工作 – 2011-02-25 18:19:56
@Mark我從來沒有好運氣設置一個主鍵與ORM多列。我會對這兩個字段設置一個唯一的約束,並放入一個代理主鍵。 – 2011-02-25 19:23:36
嘿,我有相反的意見,至少在實體框架中。爲了防止重複,我必須自己動手跟蹤事情。 – 2011-02-25 20:16:55