提出問題 大家如何控制主鍵的重複性?

2021-05-23 22:54:37 字數 1970 閱讀 2132

提出問題:大家如何控制主鍵的重複性?   

具體說明:sql資料庫product表 productid,productname  其中productid 為主鍵【非自增列】,  業務要求新增乙個商品到product表,程式中如何處理主鍵

方案一: productid不讓客戶錄入,由程式讀取product表中的max(productid)+1返回做主鍵

方案二:介面提供2個textbox,乙個供客戶錄入productid,乙個錄入productname, 在插入資料庫前判斷productid是否重複?

有沒有更好的辦法?請各位指教 謝謝

parāllél(58220937)  20:11:24

第二方案是絕對不可能的

parāllél(58220937)  20:14:51

站在客戶的角度 要是你商品太多了根本無從判斷什麼id才是不重複的

[深圳]預言者(405662443)  20:15:16

而且使用者沒必要知道id啊

[深圳]預言者(405662443)  20:15:43

那東西就是一唯一識別符號

華仔(315155589)  20:16:10

這也是我怕的,讓客戶錄入id。商品一多就麻煩了

parāllél(58220937)  20:16:39

我想問一下 你以前的id是怎麼新增進去的?

華仔(315155589)  20:17:13

專門乙個表管理主鍵

華仔(315155589)  20:17:33

每次新增都去讀取最大+1

華仔(315155589)  20:18:05

由於行業特殊,很多主鍵是這種形式abc201012230001

[深圳]預言者(405662443)  20:18:07

我們公司也這麼做的

華仔(315155589)  20:18:58

但是我想如上面的商品表productid 也這麼做沒必要

華仔(315155589)  20:19:08

畢竟不是業務單號

華仔(315155589)  20:19:25

他們只是一些基礎資料而已

parāllél(58220937)  20:20:09

主要方案一要多讀一次id也不好

華仔(315155589)  20:20:39

設自增最簡單,但是 都這麼做 。。。。

華仔(315155589)  20:21:10

想不到好辦法控制基礎資料的主鍵 ,呵呵 走了 去吃飯了。感謝大家的幫助。謝謝了

parāllél(58220937) 2010-12-23 20:26:06

insert into product(productid,productname) select productid+1,productname from  product where productid=max(productid)

[深圳]颯風(249523101) 2010-12-23 20:26:57

guid

parāllél(58220937) 2010-12-23 20:27:02

這樣就一次性完成了

[深圳]颯風(249523101) 2010-12-23 20:27:51

用guid來存productid

parāllél(58220937) 2010-12-23 20:31:20

insert into product(productid,productname) select top 1 productid+1,'productname' from  product order by productid desc

parāllél(58220937) 2010-12-23 20:31:23

這樣也好

華仔(315155589)  21:31:20

parāllél(58220937) ---謝謝  您提供的2中方案

parāllél(58220937)  21:32:28

感謝他

通讀《構建之法》提出問題

1 什麼是軟體工程?軟體工程是把系統的 有序的 可量化的方法應用到軟體的開發 運營和維護上的過程,包括可行性研究 需求分析 總體設計 詳細設計 實現和維護等。希望我可以通過本學期的學習,對軟體工程有深入了解並且學會每個階段的基本要求與實現。2 如何做到團隊協作?通過瀏覽 構建之法 的第五章的團隊和流...

快速瀏覽教材提出問題

第一章 1 網路連線有幾種形式?2 什麼構成了系統軟體?第二章 1 二進位制與十進位制的轉換方式?2 為什麼必須使用二進位制?第三章 1 畫素和解析度是什麼?2 文字壓縮有幾種方式?第四章 1 晶元承載著什麼?2 什麼是多路復用器?第五章 1 光碟和磁碟有什麼區別?2 什麼是嵌入式系統?第六章 1 ...

css基礎知識整理 歡迎大家提出問題 後續持續更新

1 css樣式規則 選擇器注意 選擇器區分大小寫,屬性和值不區分大小寫 如果屬性值由多個單詞組成且中間包括空格,這這個屬性值必須新增英文雙引號 2 引入css樣式表 1 行內式 標記名 style 屬性1 屬性值1 屬性2 屬性值2 內容2 內嵌式 3 嵌入式 3 css基礎選擇器 1 標記選擇器 ...