新聞中心
在任何一個數(shù)據(jù)庫系統(tǒng)中,用戶表都是最為基礎和重要的一張表之一。用戶表結構的設計直接影響著數(shù)據(jù)庫整個系統(tǒng)的性能和穩(wěn)定性。因此,在設計用戶表結構時需要考慮多個方面因素,包括用戶的角色、權限、訪問頻率等等。下面我們將介紹如何設計一個高效、穩(wěn)定的數(shù)據(jù)庫用戶表結構。

創(chuàng)新互聯(lián)建站主營鹽山網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,手機APP定制開發(fā),鹽山h5成都小程序開發(fā)搭建,鹽山網(wǎng)站營銷推廣歡迎鹽山等地區(qū)企業(yè)咨詢
1. 常用數(shù)據(jù)類型選擇
在設計用戶表時,需要確定每個字段的數(shù)據(jù)類型。一般來說,除了主鍵字段(一般使用整數(shù)類型),其他字段可以根據(jù)實際需求選擇數(shù)據(jù)類型。下面是一些常用的數(shù)據(jù)類型選擇建議:
整數(shù)類型:如果字段的值只有數(shù)字,例如用戶ID,性別,年齡等,可以選擇整數(shù)類型,這樣可以節(jié)省存儲空間并提高查詢效率。
日期時間類型:在記錄用戶相關信息時,經(jīng)常需要記錄用戶注冊時間或最后登錄時間等,這些數(shù)據(jù)可以使用日期時間類型記錄。
字符類型:字符類型可用于存儲用戶名、密碼、電子郵件地址和號碼等長文本類型數(shù)據(jù)。VARCHAR和TEXT都是常用的字符類型,VARCHAR更適合存儲長度相對較短的文本數(shù)據(jù),而它能夠支持更長的文本類型數(shù)據(jù)。
2. 用戶表字段設計
除了數(shù)據(jù)類型之外,用戶表的每個字段都應該根據(jù)實際需求來設置,一般包括以下字段:
用戶ID:是每個用戶的唯一標識,也是與其他表關聯(lián)的重要字段之一。
用戶名:作為名稱的唯一標識,一般長度不應超過30個字符。
密碼:密碼屬性為保密性較強的字段,需要進行加密處理。
電子郵件地址:電子郵件地址應該有唯一性約束,以防止重復收到郵件。
號碼:號碼可以用作短信驗證等用途。
用戶信息:包括性別、出生日期、所在地區(qū)等基本信息。
用戶角色:包括普通用戶、管理員、超級管理員等不同角色。
3. 用戶表索引設計
當數(shù)據(jù)庫中的數(shù)據(jù)量比較大時,查詢效率就變得尤為重要。索引是一種能夠加快查詢速度的方法,用戶表中適當?shù)乃饕梢源蟠筇岣卟樵冃?。下面是一些適合在用戶表中創(chuàng)建的索引:
用戶ID:是唯一的標識符,需要單獨創(chuàng)建唯一索引。
用戶名:可以對該字段創(chuàng)建一個唯一 NONCLUSTERED 索引。
電子郵件地址:可以對該字段創(chuàng)建一個唯一 NONCLUSTERED 索引,以便唯一的識別用戶。
登錄時間:可以對該字段創(chuàng)建常規(guī) NONCLUSTERED 索引,用于跟蹤最新的活動。
4. 安全性設計
安全性是數(shù)據(jù)庫設計中不可忽視的一個方面。用戶表中的敏感信息,如密碼和電子郵件地址,需要進行安全處理,以確保用戶信息和隱私的安全。下面是一些安全性設計的建議:
密碼加密:如果存儲用戶密碼,應該先進行加密處理,以確保用戶隱私的安全性。
訪問控制:嚴格限制對要求密碼驗證的用戶表的訪問,即使是系統(tǒng)管理員也需要經(jīng)過嚴格的驗證過程。
5. 數(shù)據(jù)庫范式
通過遵循范式設計規(guī)則,確保用戶表結構的正?;軌蛱岣邤?shù)據(jù)庫系統(tǒng)的性能和可維護性。
之一范式(1NF):在一個關系中,所有的屬性都應該是原子性的,不能在屬性中重復嵌套。
第二范式(2NF):在表中,不存在部分屬性依賴的關系,所有屬性都應該和主鍵有完全依賴關系。
第三范式(3NF):在關系中,不存在非主屬性傳遞依賴于關系中的主屬性。
在實際設計中,可以根據(jù)實際需求對這些范式進行適當?shù)恼{(diào)整,以達到系統(tǒng)的更優(yōu)化設計。
在對數(shù)據(jù)庫用戶表結構進行設計時,需要考慮多個方面的因素,包括數(shù)據(jù)類型選擇、字段設計、索引設計、安全性設計、數(shù)據(jù)庫范式等。通過建立合理高效的用戶表結構設計,可以有效提高系統(tǒng)性能、可擴展性和可維護性,更好地為用戶提供服務。
相關問題拓展閱讀:
- 數(shù)據(jù)庫課程設計實例
- 多級用戶系統(tǒng)的數(shù)據(jù)庫應該怎么設計
數(shù)據(jù)庫課程設計實例
數(shù)據(jù)庫課程設計
題目:小型超市管理系統(tǒng)
1、項目計劃
1.1系統(tǒng)開發(fā)目的
(1)大大提高超市的運作效率;
(2)通過全面的信息采集和處理,輔助提高超市的決策水平;
(3)使用本系統(tǒng),可以迅速提升超市的管理水平,為降低
經(jīng)營成本
, 提高效益,增強超市擴張力, 提供有效的技術保障。
1.2背景說明
21世紀,超市的競爭也進入到了一個全新的領域,競爭已不再是規(guī)模的競爭,而是技術的競爭、管理的競爭、人才的競爭。技術的提升和管理的升級是超市業(yè)的競爭核心。零售領域目前呈多元發(fā)展趨勢,多種業(yè)態(tài):超市、倉儲店、便利店、特許加盟店、專賣店、貨倉等相互并存。如何在激烈的競爭中擴大銷售額、降低經(jīng)營成本、擴大經(jīng)營規(guī)模,成為超市營業(yè)者努力追求的目標。
1.3項目確立
針對超市的特點,為了幫助超市解決現(xiàn)在面臨的問題,提高小型超市的競爭力,我們將開發(fā)以下系統(tǒng):前臺POS銷售系統(tǒng)、后臺管理系統(tǒng),其中這兩個子系統(tǒng)又包含其它一些子功能。
1.4應用范圍
本系統(tǒng)適應于各種小型的超市。
1.5 定義
(1)
商品條形碼
:每種商品具有唯一的條形碼,對于某些價格一樣的商品,可以使用自定義條形碼。
(2)交易清單皮備:包括交易的流水賬號、每類商品的商品名、數(shù)量、該類商品的總金額、交易的時間、負責本次收銀的員工號。
(3)商品積壓:在一定時期內(nèi),遠無法完成銷售計劃的商品會造成積壓。
(4)促銷:在一定時期內(nèi),某些商品會按低于原價的促銷價格銷售。
庫存告警提示:當商品的庫存數(shù)量低于庫存報警數(shù)量時發(fā)出提示。
(5)盤點:計算出庫存、銷售額、盈利等經(jīng)營指標。
1.6 參考資料
《數(shù)據(jù)庫原理及設計》
陶宏才編 清華大學出版社
《SQL Server 2023 實用教程》范立南編 清華大學出版社
《SQL Server 2023 編程員指南》李香敏編 北京希望電子出版社
《輕松搞定 SQL Server 2023 程序設計》Rebecca M.Riordan編
《軟件工程規(guī)范》
Watts S.Humphrey編 清華大學出版社
《軟件工程理論與實踐》
Shari Lawrence Pfleeger編 清華大學出版社
《軟件需求分析》 Swapna Kishore編
機械工業(yè)出版社
《軟件工程思想》
林銳編
2、邏輯分析與詳細分析
2.1系統(tǒng)功能
(1)、零售前臺(POS)管理系統(tǒng),本系統(tǒng)必須具有以下功能:
? 商品錄入:根據(jù)超巿業(yè)務特點制定相關功能,可以通過輸入唯一編號、掃描條形碼、商品名稱等來實現(xiàn)精確或模糊的商品掃描錄入。該掃描錄入方法可以充分保證各種電腦操作水平層次的人員均能準確快速地進行商品掃描錄入。
? 收銀業(yè)務:通過掃描條形碼或者直接輸入商品名稱(對于同類多件商品采用一次錄入加數(shù)量的方式)自動計算本次交易的總金額。在顧客付款后,自動計算找零,同時打印交易清單(包括交易的流水賬號、每類商品的商品名、數(shù)量、該類商品的總金額、交易的時間、負責本次收銀的員工號)。如果顧客是本店會員并持有本人會員卡,則在交易前先掃描會員卡,并對所購物品全部實行95折優(yōu)惠,并將所購物品的總金額累計到該會員的總消費金額中。 會員卡的有效期限為一年,滿一年未續(xù)卡者,該會員卡將被注銷。
? 安全性:OS登陸、退出、換班與操作鎖定等權限驗證保護;斷電自動保護更大限度防止意外及惡意非法操作。
? 獨立作業(yè):有的斷網(wǎng)收銀即在網(wǎng)絡服務器斷開或網(wǎng)絡不通的情況下,收銀機仍能正常作業(yè)
(2)、后臺管理系統(tǒng),本系統(tǒng)必須具備以下功能
? 進貨管理: 根據(jù)銷售情況及庫存情況,自動制定進貨計劃(亦可手工制定修改),可以避免盲目進貨造成商品積壓。 按計劃單有選擇性地進行自動入庫登記。 綜合查詢打印計劃進貨與入庫記錄及金額。
?
銷售管理
: 商品正常銷售、促銷與限枯信量、限期及禁止銷售控制。 綜合查詢各種銷售明細記錄、各地收銀員收銀記錄以及交結賬情況等。 按多種方式統(tǒng)計生成銷售排行榜,靈活察看和打印商品銷售日、月、年報表。
?
庫存管理
: 綜合查詢庫存明細記錄。 庫存狀態(tài)自動告警提示。如庫存過剩、少貨、缺貨等。軟件為您預警,避免庫存商品積壓損失和缺貨。 庫存自動盤點計算。
? 人員管理: 員工、會員、供貨商、廠商等基本信息登記管理。 員工操作權限管理。 客戶銷售權限管理。
(3)系統(tǒng)結構
系統(tǒng)總體結構
模塊子系沒握輪統(tǒng)結構
功能描述:商品錄入子系統(tǒng)要求能快速錄入商品,因此必須支持條形碼掃描。
功能描述:收銀業(yè)務子系統(tǒng)能計算交易總額,打印交易清單,并根據(jù)會員卡打折。
功能描述:進貨管理子系統(tǒng)可以根據(jù)庫存自動指定進貨計劃,進貨時自動等級,以及提供查詢和打印計劃進貨與入庫記錄的功能。
功能描述:銷售管理子系統(tǒng)可以控制某商品是否允許銷售,查詢每種商品的銷售情況并產(chǎn)生年、月、日報表,同時可以生成銷售排行榜。
功能描述:庫存管理子系統(tǒng)提供查詢庫存明細記錄的基本功能,并根據(jù)庫存的狀態(tài)報警,以及自動盤點計算。
功能描述:人員管理子系統(tǒng)提供基本信息登記管理,員工操作權限管理,客戶銷售權限管理的功能。
2.2、流程圖
前臺管理系統(tǒng)
頂層DFD圖
第0層DFD圖
第1層DFD圖
2.3、戶類型與職能
(1)、員工(營業(yè)員):
? 通過商品條形碼掃描輸入商品到購買清單
? 操作軟件計算交易總金額
? 操作軟件輸出交易清單
? 對會員進行會員卡掃描以便打折
(2)、:超市經(jīng)理
? 操作軟件錄入商品,供貨商,廠商
? 操作軟件制定進貨計劃
? 查詢打印計劃進貨與入庫記錄
? 操作軟件控制商品銷售與否
? 查詢打印銷售情況
? 操作軟件生成銷售排行榜
? 查詢庫存明細記錄
? 根據(jù)軟件發(fā)出的庫存告警進行入貨
? 操作軟件進行盤點計算
(3)、總經(jīng)理:
? 基本信息登記管理
? 員工操作權限管理
? 客戶銷售權限管理
2.4、統(tǒng)開發(fā)步驟
? 確定參與者和相關的用況
? 為每個用況設計過程
? 建立順序圖,確定每個腳本中對象的協(xié)作
? 創(chuàng)建類,確定腳本中的對象
? 設計, 編碼, 測試, 集成類
? 為過程編寫系統(tǒng)測試案例
? 運行測試案例,檢驗系統(tǒng)
2.5、系統(tǒng)環(huán)境需求
? 系統(tǒng)模式
本系統(tǒng)采用C/S模式作為開發(fā)模式
? 硬件環(huán)境
服務器端:
高性能的計算機一臺,
普通的
雙絞線
作為連接。
客戶端: 普通的計算機或者工作站,
普通的雙絞線作為連接。
? 軟件環(huán)境
服務器端:安裝SQL Server 2023的服務器版本,
安裝windows 2023服務器版本,
配置了
諾頓
等必須的
防毒軟件
。
客戶端: 安裝SQL Server2023的服務器版本,
安裝了VB等可視化開發(fā)工具軟件,
安裝windows2023服務器版本。
2.6、系統(tǒng)安全問題
信息系統(tǒng)盡管功能強大,技術先進,但由于受到自身體系結構,設計思路以及運行機制等限制,也隱含許多不安全因素。常見因素有:數(shù)據(jù)的輸入,輸出,存取與備份,
源程序
以及應用軟件,數(shù)據(jù)庫,操作系統(tǒng)等漏洞或缺陷,硬件,通信部分的漏洞,企業(yè)內(nèi)部人員的因素,病毒,“
黑客
”等因素。因此,為使本系統(tǒng)能夠真正安全,可靠,穩(wěn)定地工作,必須考慮如下問題:為保證安全,不致使系統(tǒng)遭到意外事故的損害,系統(tǒng)因該能防止火,盜或其他形式的人為破壞。
? 系統(tǒng)要能重建
? 系統(tǒng)應該是可審查的
? 系統(tǒng)應能進行有效控制,抗干擾能力強
? 系統(tǒng)使用者的使用權限是可識別的
3、基于UML的建模
3.1語義規(guī)則
用例
模型(
use case
s view)(用例視圖)的基本組成部件是用例(use case)、角色(actor)和系統(tǒng)(system)。用例用于描述系統(tǒng)的功能,也就是從外部用戶的角度觀察,系統(tǒng)應支持哪些功能,幫助分析人員理解系統(tǒng)的行為,它是對系統(tǒng)功能的宏觀描述,一個完整的系統(tǒng)中通常包含若干個用例,每個用例具體說明應完成的功能,代表系統(tǒng)的所有基本功能(集)。角色是與系統(tǒng)進行交互的外部實體,它可以是系統(tǒng)用戶,也可以是其它系統(tǒng)或硬件設備,總之,凡是需要與系統(tǒng)交互的任何東西都可以稱作角色。系統(tǒng)的邊界線以內(nèi)的區(qū)域(即用例的活動區(qū)域)則抽象表示系統(tǒng)能夠實現(xiàn)的所有基本功能。在一個基本功能(集)已經(jīng)實現(xiàn)的系統(tǒng)中,系統(tǒng)運轉的大致過程是:外部角色先初始化用例,然后用例執(zhí)行其所代表的功能,執(zhí)行完后用例便給角色返回一些值,這個值可以是角色需要的來自系統(tǒng)中的任何東西。
UML:是一種標準的圖形化建模語言,它是面向對象分析與設計的一種標準表示;它不是一種可視化的程序設計語言而是一種可視化的建模語言;不是工具或知識庫的規(guī)格說明而是一種建模語言規(guī)格說明是一種表示的標準;不是過程也不是方法但允許任何一種過程和方法使用它。
用例(use case):
參與者(actor):
3.2、UML模型
3.21、系統(tǒng)UML模型
3.22、子系統(tǒng)UML模型
(1)零售前臺(POS)管理系統(tǒng)用例視圖
(2)后臺管理系統(tǒng)用例視圖
3.3、系統(tǒng)實現(xiàn)圖
4、超市銷售系統(tǒng)概念設計文檔
(1)、系統(tǒng)ER圖
(2)、系統(tǒng)ER圖說明
1) 商店中的所有用戶(員工)可以銷售多種商品,每種商品可由不同用戶(員工)銷售;
2) 每個顧客可以購買多種商品,不同商品可由不同顧客購買;
3) 每個供貨商可以供應多種不同商品,每種商品可由多個供應商供應。
(3)、視圖設計
1) 交易視圖(v_Dealing)——用于查詢交易情況的視圖;
2) 計劃進貨視圖(v_PlanStock)——用于查詢進貨計劃的視圖;
3) 銷售視圖(v_Sale)——用于查詢銷售明細記錄的視圖;
4) 入庫視圖(v_Stock)——用于查詢?nèi)霂烨闆r的視圖。
5、邏輯設計文檔
(1)、系統(tǒng)關系模型
a) 商品信息表(商品編號,商品名稱,價格,條形碼,促銷價格,促銷起日期,促銷止日期,允許打折,庫存數(shù)量,庫存報警數(shù)量,計劃進貨數(shù),允許銷售,廠商編號,供貨商編號)
b) 用戶表(用戶編號,用戶名稱,用戶密碼,用戶類型)
c) 會員表(會員編號,會員卡號,累積消費金額,注冊日期)
d) 銷售表(銷售編號,商品編號,銷售數(shù)量,銷售金額,銷售日期)
e) 交易表(交易編號,用戶名稱,交易金額,會員卡號,交易日期)
f) 進貨入庫表(入庫編號,入庫商品編號,入庫數(shù)量,單額,總額,入庫日期,計劃進貨日期,入庫狀態(tài))
g) 供貨商表(供貨商編號,供貨商名稱,供貨商地址,供貨商)
h) 廠商表(廠商編號,廠商名稱,廠商地址,廠商)
(2)、系統(tǒng)數(shù)據(jù)庫表結構
數(shù)據(jù)庫表索引
表名 中文名
MerchInfo 商品信息表
User 用戶表
Menber 會員表
Sale 銷售表
Dealing 交易表
Stock 進貨入庫表
Provide 供貨商表
Factory 廠商表
商品信息表(MerchInfo)
字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名
MerchID int 4 P Not null 商品編號
MerchName Varchar 50 Not null 商品名稱
MerchPrice Money 4 Not null 價格
MerchNum Int 4 Not null 庫存數(shù)量
CautionNum Int 4 Not null 庫存報警數(shù)量
PlanNum Int 4 null 計劃進貨數(shù)
BarCode Varchar 50 Not null 條形碼
SalesProPrice Money 4 促銷價格
SalesProDateS Datetime 8 促銷起日期
SalesProDateE Datetime 8 促銷止日期
AllowAbate Int 4 Not null 允許打折
AllowSale Int 4 Not null 允許銷售
FactoryID Varchar 10 F Not null 廠商編號
ProvideID Varchar 10 F Not null 供貨商編號
用戶表(User)
字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名
UserID varchar 10 P Not null 用戶編號
UserName Varchar 25 Not null 用戶名稱
UserPW Varchar 50 Not null 用戶密碼
UserStyle Int 4 Not null 用戶類型
會員表(Menber)
字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名
MemberID Varchar 10 P Not null 會員編號
MemberCard Varchar 20 Not null 會員卡號
TotalCost Money 4 Not null 累積消費金額
RegDate Datetime 8 Not null 注冊日期
銷售表(Sale)
字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名
SaleID Varchar 10 P Not null 銷售編號
MerChID Varchar 10 F Not null 商品編號
SaleDate Datetime 8 Not null 銷售日期
SaleNum Int 4 Not null 銷售數(shù)量
SalePrice Money 4 Not null 銷售單額
交易表(Dealing)
字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名
DealingID Varchar 10 P Not null 交易編號
DealingPrice Money 4 Not null 交易金額
DealingDate Money 4 Not null 交易日期
MemberID Varchar 10 會員卡號
UserName Varchar 10 F Not null 用戶名稱
入庫紀錄表(Stock)
字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名
StockID Varchar 10 P Not null 入庫編號
MerchID Varchar 10 F Not null 入庫商品編號
MerchNum Int 4 Not null 入庫數(shù)量
MerchPrice Money 4 Not null 單額
TotalPrice Money 4 Not null 總額
StockDate Datetime 8 Datetime 入庫日期
PlanDate Datetime 8 Datetime 計劃進貨日期
StockState Int 4 Not null 入庫狀態(tài)
供貨商表(Provide)
字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名
ProvideID varchar 10 P Not null 供貨商編號
ProvideName Varchar 50 Not null 供貨商名稱
ProvideAddress Varchar供貨商地址
ProvidePhone Varchar 25 供貨商
廠商表(Provide)
字段名 字段類型 長度 主/外鍵 字段值約束 對應中文名
FactoryID varchar 10 P Not null 廠商編號
FactoryName Varchar 50 Not null 廠商名稱
FactoryAddress Varchar廠商地址
FactoryPhone Varchar 25 廠商
6、物理設計文檔
/*創(chuàng)建數(shù)據(jù)庫*/
create database SuperMarketdb
on primary
(
name=SuperMarketdb,
filename=’C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.mdf’,
size=100MB,
maxsize=200MB,
filegrowth=20MB
)
log on
(
name=SuperMarketlog,
filename=’C:\Program Files\Microsoft SQL Server\MSSQL\Data\SuperMarketdb.ldf’,
size=60MB,
maxsize=200MB,
filegrowth=20MB
)
go
/*創(chuàng)建基本表*/
use
go
/*創(chuàng)建交易表*/
CREATE TABLE Dealing (
DealingID int identity(1,1) Primary key ,
DealingDate datetime NOT NULL ,
DealingPrice money NOT NULL ,
UserName varchar(25) NULL ,
MemberCard varchar(20) NULL
)
GO
/*創(chuàng)建廠商表*/
CREATE TABLE Factory (
FactoryID varchar(10) Primary key ,
FactoryName varchar(50) NOT NULL ,
FactoryAddress varchar(250) NULL ,
FactoryPhone varchar(50) NULL
)
GO
/*創(chuàng)建會員表*/
CREATE TABLE Member (
MemberID varchar(10) Primary key ,
MemberCard varchar(20) NOT NULL ,
TotalCost money NOT NULL ,
RegDate datetime NOT NULL
)
GO
/*創(chuàng)建商品信息表*/
CREATE TABLE MerchInfo (
MerchID int identity(1,1) Primary key ,
MerchName varchar(50) Unique NOT NULL ,
MerchPrice money NOT NULL ,
MerchNum int NOT NULL ,
CautionNum int NOT NULL ,
PlanNum int NOT NULL ,
BarCode varchar(20) Unique NOT NULL ,
SalesProPrice money NULL ,
SalesProDateS datetime NULL ,
SalesProDateE datetime NULL ,
AllowAbate int NOT NULL ,
AllowSale int NOT NULL ,
FactoryID int NOT NULL ,
ProvideID int NOT NULL
)
GO
/*創(chuàng)建供應商表*/
CREATE TABLE Provide (
ProvideID varchar(10) Primary key ,
ProvideName varchar(50) NOT NULL ,
ProvideAddress varchar(250) NULL ,
ProvidePhone varchar(25) NULL
)
GO
/*創(chuàng)建銷售表*/
CREATE TABLE Sale (
SaleID int identity(1,1) Primary key ,
MerChID int NOT NULL ,
SaleDate datetime NOT NULL ,
SaleNum int NOT NULL,
SalePrice money NOT NULL
)
GO
/*創(chuàng)建入庫表*/
CREATE TABLE Stock (
StockID int identity(1,1) Primary key ,
MerchID int NOT NULL ,
MerchNum int NOT NULL ,
MerchPrice money NULL ,
TotalPrice money NULL ,
PlanDate datetime NULL ,
StockDate datetime NULL,
StockState int NOT NULL
)
GO
/*創(chuàng)建用戶表*/
CREATE TABLE User (
UserID varchar(10) Primary key ,
UserName varchar(25) NOT NULL ,
UserPW varchar(50) NOT NULL ,
UserStyle int NOT NULL ,
)
GO
/*創(chuàng)建表間約束*/
/*商品信息表中廠商編號、供應商編號分別與廠商表、供應商表之間的外鍵約束*/
ALTER TABLE MerchInfo ADD
CONSTRAINT FOREIGN KEY
(
) REFERENCES Factory (
),
CONSTRAINT FOREIGN KEY
(
) REFERENCES Provide (
)
GO
/*銷售表中商品編號與商品信息表之間的外鍵約束*/
ALTER TABLE Sale ADD
CONSTRAINT FOREIGN KEY
(
) REFERENCES MerchInfo (
) ON DELETE CASCADE
GO
/*入庫表中商品編號與商品信息表之間的外鍵約束*/
ALTER TABLE Stock ADD
CONSTRAINT FOREIGN KEY
(
) REFERENCES MerchInfo (
) ON DELETE CASCADE
GO
/*創(chuàng)建索引*/
/*在交易表上建立一個以交易編號、交易日期為索引項的非聚集索引*/
CREATE nonclustered INDEX IX_Dealing ON Dealing(DealingID, DealingDate)
GO
/*在商品信息表上建立一個以商品編號為索引項的非聚集索引*/
CREATE nonclustered INDEX IX_MerchInfo ON MerchInfo(MerchID)
GO
/*在銷售表上建立一個以銷售編號、銷售日期為索引項的非聚集索引*/
CREATE nonclustered INDEX IX_Sale ON Sale(SaleID, SaleDate)
GO
/*在入庫表上建立一個以入庫編號、入庫日期、商品編號為索引項的非聚集索引*/
CREATE nonclustered INDEX IX_Stock ON Stock(StockID, StockDate, MerchID)
GO
/*創(chuàng)建視圖*/
/*創(chuàng)建用于查詢交易情況的視圖*/
CREATE VIEW v_Dealing
AS
SELECT DealingDate as 交易日期,
UserName as 員工名稱,
MemberCard as 會員卡號,
DealingPrice as 交易金額
FROM Dealing
GO
/*創(chuàng)建用于查詢進貨計劃的視圖*/
CREATE VIEW v_PlanStock
AS
SELECT Stock.StockID as SID,
MerchInfo.MerchName as 商品名稱,
MerchInfo.BarCode as 條形碼,
Factory.FactoryName as 廠商,
Provide.ProvideName as 供貨商,
Stock.MerchNum as 計劃進貨數(shù)量,
Stock.PlanDate as 計劃進貨日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=0
GO
/*創(chuàng)建用于查詢銷售明細記錄的視圖*/
CREATE VIEW v_Sale
AS
SELECT MerchInfo.MerchName as 商品名稱,
MerchInfo.BarCode as 條形碼,
MerchInfo.MerchPrice as 商品價格,
Sale.SalePrice as 銷售價格,
Sale.SaleNum as 銷售數(shù)量,
Sale.SaleDate as 銷售日期
FROM Sale INNER JOIN
MerchInfo ON Sale.MerChID = MerchInfo.MerchID
GO
/*創(chuàng)建用于查詢?nèi)霂烨闆r的視圖*/
CREATE VIEW v_Stock
AS
SELECT MerchInfo.MerchName as 商品名稱,
MerchInfo.BarCode as 條形碼,
Factory.FactoryName as 廠商,
Provide.ProvideName as 供貨商,
Stock.MerchPrice as 入庫價格,
Stock.MerchNum as 入庫數(shù)量,
Stock.TotalPrice as 入庫總額,
Stock.StockDate as 入庫日期
FROM Stock,MerchInfo,Provide,Factory
Where Stock.MerchID = MerchInfo.MerchID
and Provide.ProvideID=MerchInfo.ProvideID
and Factory.FactoryID=MerchInfo.FactoryID
and Stock.StockState=1
GO
7、小結
和傳統(tǒng)管理模式相比較,使用本系統(tǒng),毫無疑問會大大提高超市的運作效率,輔助提高超市的決策水平,管理水平,為降低經(jīng)營成本, 提高效益,減少差錯,節(jié)省人力,減少顧客購物時間,增加客流量,提高顧客滿意度,增強超市擴張能力, 提供有效的技術保障。
由于開發(fā)者能力有限,加上時間倉促,本系統(tǒng)難免會出現(xiàn)一些不足之處,例如:
? 本系統(tǒng)只適合小型超市使用,不能適合中大型超市使用;
? 超市管理系統(tǒng)涉及范圍寬,要解決的問題多,功能復雜,實現(xiàn)困難,但由于限于時間,本系統(tǒng)只能做出其中的一部分功能;
對于以上出現(xiàn)的問題,我們深表歉意,如發(fā)現(xiàn)還有其它問題,希望老師批評指正。
多級用戶系統(tǒng)的數(shù)據(jù)庫應該怎么設計
主要從幾個不同方面設計ORACLE數(shù)據(jù)庫優(yōu)化方案:一.數(shù)據(jù)庫優(yōu)化自由結構OFA(Optimal flexible Architecture)二、充分利用系統(tǒng)全局區(qū)域SGA(SYSTEM GLOBAL AREA)三、數(shù)據(jù)庫設計中的優(yōu)化策略數(shù)據(jù)應當按兩種類別進行組織:頻繁訪問的數(shù)據(jù)和頻繁修改的數(shù)據(jù)。對于頻繁訪問但是不頻繁修改的數(shù)據(jù),內(nèi)部設計應當物理不規(guī)范化。對于頻備凳繁修改但并不頻繁訪問的數(shù)據(jù),內(nèi)部設計應當物理規(guī)范化。四、合理設計和管理表1、利用表分區(qū)分區(qū)將數(shù)據(jù)在物理上分隔開,不同分區(qū)的數(shù)據(jù)可以制定保存在處于不同磁盤上的數(shù)據(jù)文件里。2、避免出現(xiàn)行連接和行遷移3、控制碎片4、別名的使用別名是大型數(shù)據(jù)庫的應用技巧,就是表名、列名在查詢中以一個字母為別名,查詢速度要比建連接表快1.5倍。5、回滾段的交替使用五、索引Index的優(yōu)化設計1、管理組織索引索引可以大大加快數(shù)據(jù)庫的查詢速度,索引把表中的邏輯值映射到安全的RowID,因此索引能進行快速定位數(shù)棚耐據(jù)的物理地址。六、多CPU和并行查詢PQO(Parallel Query Option)方式的利用七、實施系統(tǒng)資源管理分配計劃ORACLE 提供了Database Resource Manager(DRM,數(shù)據(jù)庫資源管理器)來控制用戶的資源分配,DBA可以用它分配用戶類和作業(yè)類的系統(tǒng)資源百分比。在一個OLDP系統(tǒng)中,可給聯(lián)機用戶分配75%的CPU資源,剩下的25%留給批用戶。另外,還可以進行CPU的多級分配。除了進行CPU資源分配外,DRM還可以對資源用戶組執(zhí)行并行操作的限制。八、使用更優(yōu)的數(shù)據(jù)庫連接和SQL優(yōu)化方案九、充分利用數(shù)據(jù)的后臺處理方案減少網(wǎng)絡流量1、合理創(chuàng)建臨時表或視圖鏈滾春2、數(shù)據(jù)庫打包技術的充分利用利用數(shù)據(jù)庫描述語言編寫數(shù)據(jù)庫的過程或函數(shù),然后把過程或函數(shù)打成包在數(shù)據(jù)庫后臺統(tǒng)一運行包即可。3、數(shù)據(jù)復制、快照、視圖,遠程過程調(diào)用技術的運用
數(shù)據(jù)庫用戶表結構設計的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關于數(shù)據(jù)庫用戶表結構設計,如何設計數(shù)據(jù)庫用戶表結構,數(shù)據(jù)庫課程設計實例,多級用戶系統(tǒng)的數(shù)據(jù)庫應該怎么設計的信息別忘了在本站進行查找喔。
成都網(wǎng)站推廣找創(chuàng)新互聯(lián),老牌網(wǎng)站營銷公司
成都網(wǎng)站建設公司創(chuàng)新互聯(lián)(www.cdcxhl.com)專注高端網(wǎng)站建設,網(wǎng)頁設計制作,網(wǎng)站維護,網(wǎng)絡營銷,SEO優(yōu)化推廣,快速提升企業(yè)網(wǎng)站排名等一站式服務。IDC基礎服務:云服務器、虛擬主機、網(wǎng)站系統(tǒng)開發(fā)經(jīng)驗、服務器租用、服務器托管提供四川、成都、綿陽、雅安、重慶、貴州、昆明、鄭州、湖北十堰機房互聯(lián)網(wǎng)數(shù)據(jù)中心業(yè)務。
標題名稱:如何設計數(shù)據(jù)庫用戶表結構 (數(shù)據(jù)庫用戶表結構設計)
URL地址:http://m.5511xx.com/article/cdhosog.html


咨詢
建站咨詢
