❶ 為什麼在資料庫建表時要建一張人員表和一張機構表,為什麼不能合成一張表
道理很簡單,這是關系資料庫的要求。
因為一個機構存在多個人員,如果放一張表,勢必會有很多冗餘數據。
比如這種樣子
機構1代碼 機構1名稱 機構1電話 機構1地址 人員1代碼 人員1姓名 人員1性別 。。。
機構1代碼 機構1名稱 機構1電話 機構1地址 人員2代碼 人員2姓名 人員2性別 。。。
機構1代碼 機構1名稱 機構1電話 機構1地址 人員3代碼 人員3姓名 人員3性別 。。。
機構1代碼 機構1名稱 機構1電話 機構1地址 人員4代碼 人員4姓名 人員4性別 。。。
機構2代碼 機構2名稱 機構2電話 機構2地址 人員5代碼 人員5姓名 人員5性別 。。。
機構2代碼 機構2名稱 機構2電話 機構2地址 人員6代碼 人員6姓名 人員6性別 。。。
很顯然,前面機構部分明顯冗餘了,建立機構表,人員表和機構人員表就可以避免這種問題
機構表
機構代碼 機構名稱 機構電話 機構地址
人員表
人員代碼 人員姓名 人員性別
機構人員表
機構代碼 人員代碼
這種就非常簡潔。
當然這只是針對關系資料庫而言,如果是數據倉庫,反而要使用冗餘方式來處理。
❷ 資料庫表設計 一個人一個店鋪, 如何設計, 如果你的設計方案是都放到一張表裡, 就不用回答了
用戶表(userID,userName)
店鋪表(dpID,dpName,UserID)
1對1,還是1對多,在店鋪表裡面控制就好
❸ 資料庫表設計:用戶單表(添加用戶角色欄位)還是多用戶表(每種角色一個表)
如果你的用戶和角色是多對多的關系,單表肯定是不行的!
❹ 軟體資料庫設計該由什麼角色負責
通常是技術經理設計資料庫結構,小型項目也可以由程序員自行設計。
❺ 是否為每個用戶建立資料庫表
create
table
userthe(資料庫表名)
(
id
int
identity
(1,
1)
not
null
,
userid
int
,
'會員id自動遞增,並是唯一的
username
varchar(50),
'會員名稱50個字以內
attribute
int
default
0,
'屬性默認值是設置0
userpassword
varchar(50),
'這列是用戶存放密碼,建議用md5加密後保存,驗證的時候用戶輸入的密碼也加密後對比
ustime
datetime
default
getdate(),
'這個可以記錄時間,默認為生成的時間
);
❻ 資料庫設計階段 為什麼要由不同的人來設計
資料庫設計可以分為概念結構設計、邏輯結構設計和物理結構設計三個階段。(1)概念結構設計。這是資料庫設計的第一個階段,在管理信息系統的分析階段,已經得到了系統的數據流程圖和數據字典,現在要結合數據規范化的理論,用一種數據模型將用戶的數據需求明確地表示出來。概念數據模型是面向問題的模型,反映了用戶的現實工作環境,是與資料庫的具體實現技術無關的。建立系統概念數據模型的過程叫做概念結構設計。(2)邏輯結構設計。根據已經建立的概念數據模型,以及所採用的某個資料庫管理系統軟體的數據模型特性,按照一定的轉換規則,把概念模型轉換為這個資料庫管理系統所能夠接受的邏輯數據模型。不同的資料庫管理系統提供了不同的邏輯數據模型,如層次模型、網狀模型、關系模型等。(3)物理結構設計。為一個確定的邏輯數據模型選擇一個最適合應用要求的物理結構的過程,就叫做資料庫的物理結構設計。資料庫在物理設備上的存儲結構和存取方法稱為資料庫的物理數據模型。
❼ 資料庫的邏輯模型一般由誰設計完成
資料庫邏輯設計決定了資料庫及其應用的整體性能,調優位置。如果資料庫邏輯設計不好,則所有調優方法對於提高資料庫性能的效果都是有限的。為了使資料庫設計的方法走向完備,資料庫的規范化理論必須遵守。規范化理論為資料庫邏輯設計提供了理論指導和工具,在減少了數據冗餘的同時節約了存儲空間,同時加快了增、刪、改的速度。
另外,在規范的資料庫邏輯設計時,還應考慮適當地破壞規范規則,即反規范化設計,來降低索引、表的數目,降低連接操作的數目,從而加快查詢速度。常用的反規范技術有增加冗餘列、增加派生列、重新組表等。
增加冗餘列:有時要進行查詢的列分布在不同的表中,如果這個連接查詢的頻率比較高,那就可以根據需要,把其它表中的這一列加進來,從而使得多個表中具有相同的列,它常用來在查詢時避免連接操作。但它的壞處就是需要更多的磁碟空間,同時因為完整性問題需要增加維護表的工作量。
總之,在進行資料庫邏輯設計時,一定要結合應用環境和現實世界的具體情況合理地選擇資料庫模式。
一般由設計師完成