導航:首頁 > 數據處理 > 資料庫怎麼設計

資料庫怎麼設計

發布時間:2022-02-25 17:53:24

資料庫怎麼設計呢

create table 角色表( 編號 int primary key identity(1,1) not null, 角色名稱 varcahr(20) not null, 角色狀態 int default(1))create table 用戶表( 編號 int primary key identity(1,1) not null, 用戶名稱 varchar(20) not null, 用戶密碼 varchar(10) not null, 用戶狀態 int default(1))create table 許可權表( 編號 int primary key identity(1,1) not null, 職權名稱 varchar(30) not null, 狀態 int default(1))create table 角色_許可權( 編號 int primary key identity(1,1) not null, 角色編號 int foreign key references 角色表 not null, 許可權編號 int foreign key references 許可權表 not null, 狀態 int default(1)
)create table 角色_用戶( 編號 int primary key identity(1,1) not null, 角色編號 int foreign key references 角色表 not null, 用戶編號 int foreign key references 用戶表 not null, 狀態 int default(1)
)沒在SQL上寫有些錯了的話不好意識的咯,每張表都有狀態,因為在表直接有約束,所以刪除信息的時候很難刪掉,如果要刪掉的話就直接修改狀態,0為有效,1為有效。

⑵ 資料庫伺服器怎麼設計

我理解你問的是硬體,一般思路: 1.選平台:windows,linux還是unix 2.挑主機:哪個廠商,什麼樣的性能要求(TPCC,TPCH),什麼樣的RAS要求,什麼特殊要求如分區、虛擬化等 3.搭架構:這個和你自身的應用以及選的資料庫有關,比如oracle資料庫,是單機單實例還是RAC或者其他方式 4.配存儲:I/.O常常是資料庫的瓶頸,要配合適的存儲才能發揮伺服器性能 當然理論設計還要看實際預算,暫時想到的,供你參考 藍屏

⑶ 網站的資料庫如何設計


什麼是好的資料庫設計?

一些原則可為資料庫設計過程提供指導。第一個原則是,重復信息(也稱為冗餘數據)很糟糕,因為重復信息會浪費空間,並會增加出錯和不一致的可能性。第二個原則是,信息的正確性和完整性非常重要。如果資料庫中包含不正確的信息,任何從資料庫中提取信息的報表也將包含不正確的信息。因此,基於這些報表所做的任何決策都將提供錯誤信息。

所以,良好的資料庫設計應該是這樣的:


設計過程

設計過程包括以下步驟:


參考:資料庫設計基礎

⑷ 資料庫如何設計

資料庫設計的基本步驟

按照規范設計的方法,考慮資料庫及其應用系統開發全過程,將資料庫設計分為以下6個階段

1.需求分析

2.概念結構設計

3.邏輯結構設計

4.物理結構設計

5.資料庫實施

6.資料庫的運行和維護


資料庫設計通常分為6個階段1分析用戶的需求,包括數據、功能和性能需求;2概念結構設計:主要採用E-R模型進行設計,包括畫E-R圖;3邏輯結構設計:通過將轉換成表,實現從E-R模型到關系模型的轉換;4:主要是為所設計的資料庫選擇合適的和存取路徑;5資料庫的實施:包括編程、測試和試運行;6資料庫運行與維護:系統的運行與資料庫的日常維護。),主要討論其中的第3個階段,即邏輯設計。



在資料庫設計過程中,需求分析和概念設計可以獨立於任何資料庫管理系統進行,邏輯設計和物理設計與選用的DAMS密切相關。

1.需求分析階段(常用自頂向下)

進行資料庫設計首先必須准確了解和分析用戶需求(包括數據與處理)。需求分析是整個設計過程的基礎,也是最困難,最耗時的一步。需求分析是否做得充分和准確,決定了在其上構建資料庫大廈的速度與質量。需求分析做的不好,會導致整個資料庫設計返工重做。

需求分析的任務,是通過詳細調查現實世界要處理的對象,充分了解原系統工作概況,明確用戶的各種需求,然後在此基礎上確定新的系統功能,新系統還得充分考慮今後可能的擴充與改變,不僅僅能夠按當前應用需求來設計。

調查的重點是,數據與處理。達到信息要求,處理要求,安全性和完整性要求。

分析方法常用SA(Structured Analysis) 結構化分析方法,SA方法從最上層的系統組織結構入手,採用自頂向下,逐層分解的方式分析系統。

數據流圖表達了數據和處理過程的關系,在SA方法中,處理過程的處理邏輯常常藉助判定表或判定樹來描述。在處理功能逐步分解的同事,系統中的數據也逐級分解,形成若干層次的數據流圖。系統中的數據則藉助數據字典(data dictionary,DD)來描述。數據字典是系統中各類數據描述的集合,數據字典通常包括數據項,數據結構,數據流,數據存儲,和處理過程5個階段。

2.概念結構設計階段(常用自底向上)

概念結構設計是整個資料庫設計的關鍵,它通過對用戶需求進行綜合,歸納與抽象,形成了一個獨立於具體DBMS的概念模型。

設計概念結構通常有四類方法:

⑸ 怎麼去設計一個資料庫

第一:首先分析資料庫應該包含幾個表,每個表裡面有多少項內容,這些需要根據資料庫管理系統功能來說的!
第二:開始建立資料庫表以及裡面的欄位
第三:就是資料庫開發了
第四:功能的完善

建議你先分析一下都需要什麼功能!然後在網路裡面搜索一下!現在有很多現成的資料庫管理系統的,直接下載一個根據你所需要的功能進行修改就可以了!

網上很多,如果自己開發太累,也沒有那些高手開發的功能全的!

⑹ 怎麼設計這個資料庫

問這種問題通常都不容易說清楚,只能勉強做一下。要更清楚得詳談。
對於第2個問題:
分成:
一級類表:一級類id(主鍵),類名稱 .....(描述,備注等欄位),43條記錄
二級類表:二級類id(主鍵),類名稱 .....(描述,備注等欄位),855條記錄
屬性表:屬性id(主鍵),屬性名稱 .....(描述,備注等欄位),6000條記錄左右,這里我假設你的意思不是6000種屬性值呢,而是6000種屬性,不同產品規格型號不同。
下面的產品記錄若理解為產品,而不是同一產品的不同個體都有一條記錄。則
產品類型表:產品類型id(主鍵),產品名稱(同一類型產品名字是一樣的),屬性1 id,屬性1值,屬性2 id,屬性2值,屬性3 id,屬性3值 .....(描述,備注等非關鍵欄位),220萬條記錄左右。其中屬性id都是外鍵,和屬性表關聯。這不太符合實際:因為有220萬種產品,似乎規模太大了。可能空間很浪費,因為如果某產品有最多100個屬性,則其它產品記錄中會有大量空屬性,如果使用關系和XML混合資料庫,可避免該問題,可是在檢索中效率如何等方面需要仔細考慮。另外可能還需要考慮諸如生產廠家、銷售者等問題,所以問題的規模不見得僅僅是這一點。
若是產品個體的記錄,則:
產品類型表還是要的。然後
產品表:產品id(主鍵),其餘諸如出廠日期,描述,備注等非關鍵欄位。
對於第1個問題:
則是資料庫優化問題,要根據資料庫訪問特點,包括提高硬體性能(更好的機器、伺服器群集)、加適當索引、採用適當的並發機制等方式來解決問題。而且最好有一個具體需求,然後盡快測試系統原型是否滿足要求,不滿足就設法改進直到滿足要求為止。

⑺ 論壇的資料庫怎麼設計

常用的論壇設計方法,總結如下:
一 分割思想:
1 資料庫切分:用戶庫、主題庫、回復庫
2 數據表水平切分:用戶庫1-n、主題庫1-n、回復庫1-n (比如按時間分)
3 分布式資料庫:每台計算機中都有DBMS的一份完整拷貝副本,並具有自己局部的資料庫,位於不同地點的許多計算機通過網路互相連接,共同組成一個完整的、全局的大型資料庫。
4 論壇功能可以進行分隔,不同的伺服器負責不同的功能
5 用主從資料庫,master是寫, slave是讀
6 把內容與其它信息分開,好處就是可以讓每個表的文件最小化,對資料庫操作壓力會減小,這樣保證每張表數據量很小,操作速度會快,也可以在這里使用緩存
二 索引:
針對是否建立索引有著一定的分歧:
我覺得建立索引還是很有必要的。理由如下:
1)建立索引可以加快檢索速度,對於論壇讀和寫的比例相差很大,用戶體驗當然是讀多寫少,所以綜合考慮還是要用索引,而且是加在常用的讀關鍵字上。
2)索引之所以會降低更新的速度,是因為更新還包括對索引的更新,從更新帖子10萬左右,這句話是說,我們可能對發帖標題,發帖內容,回復標題,回復內容這4個欄位做更新。需要注意的是,這四個欄位並不是用來建立表連接的欄位,為了優化查詢速度我們不會在這四個欄位上建立索引,所以從這道題目出發,我們建立的索引不會影響更新帖子的性能。只要被索引的列(例如回復表的標題ID)不被頻繁更新,即使索引所在地行的其它列被頻繁update,索引也不會被更新從而產生性能消耗,一張表一天30萬次的索引更新,因它引起的性能消耗小到即使資料庫安裝在奔騰3單核CPU下都能輕松承擔下來。
3)對於更新的速度慢的問題,我們有解決的方法,你提交更新了後,前台可以讓程序返回一個正確結果,後台開個線程非同步慢慢跟新資料庫就是了,反正更新成功的前提就是假設資料庫連接永遠正確並處於可靠狀態。在資料庫和用戶之間建立一個緩沖區。(如,將更新的數據放到內存中,達到一定數量的時候再統一更新資料庫。假如以100條為例,一旦內存中達到100條數據量將這100條數據統一入庫。減少insert操作)

三 緩沖:
讀的時候的緩沖:緩存路由表
主題緩存表(這個取每個區的前面100條記錄),一般來說負載最大的就是主題的第一頁,所以緩存表是個小表。

另外使用hibernate,在資料庫上面加了一層緩存。
生成靜態頁,緩存最熱,最新的帖子。
對於經常更新的數據都設計成單獨表 ,這樣可以最大程度的利用hibernate緩存
緩存常用的數據和表,利用緩存來將經常被訪問的帖子留在內存中,為每條緩存的記錄添加一個訪問時間,如果長時間沒被訪問就從緩存中刪除掉,
避免內存過大,每次用戶看帖的時候,首先檢索緩存中時候有需要的帖子,沒有的話再訪問資料庫,然後將資料庫返回的帖子信息存儲到緩存中。

寫的時候的緩沖:資料庫和用戶之間建立緩存,將更新的數據放在內存中,非同步操作的。所有的寫貼操作 放到一個隊列然後批量執行插入資料庫操作。

預估計的緩沖:假如用戶第一次打開某標題,那將此標題的相關的前100條數據緩存到客戶斷。這樣避開對資料庫的直接查詢,減少資料庫壓力。
四 代碼優化
1盡量避免表的連接約束通過代碼來實現約束 例如用戶id的驗證在用戶登錄時驗證這樣就可以把帖子表的用戶id外鍵去掉這樣就成了單表操作、查詢 而連接可以通過觸發來實現這樣最多是查詢了3個表而不是連接中的笛卡爾笛卡爾積 回復表的查詢限定每次查詢的記錄數例如限定10條其它的通過點擊觸發來操作"注代碼優化容易出現bug 原因有些開發工具本身有優化"
五 資料庫性能調優
盡量用硬體來代替軟體優化 原則就是能用硬體的盡量用硬體 比如磁碟陣列 RAID0 有條件用RAID10 加大內存 .避免小表上建索引 對論壇來說數據帖子和回復不是很重要 可以定期刪除一些垃圾帖子 樓主說的幾百萬條記錄的論壇對現在的資料庫管理系統和計算機來說永不著刻意的優化,定期維護打包備份資料庫就可以了
提高速度的關鍵:
1.建立合理的索引並在查詢時充分利用;
2.避免使用關聯,這樣避免整表掃描;使用關聯不如多次使用主鍵查詢來的快;
3.一些處理的功能盡可能放到內存中來做,比如組織主題和回復;
4.海量緩存(使用靜態頁面也是個不錯的做法)
5 定期對表進行轉儲

閱讀全文

與資料庫怎麼設計相關的資料

熱點內容
交易卡被限制交易怎麼回事 瀏覽:982
商水狗貓市場在哪個位置 瀏覽:522
電腦微信小程序游戲怎麼放大 瀏覽:560
ct三維重建技術是哪裡的 瀏覽:931
小區底商怎麼代理快遞 瀏覽:715
什麼產品可以無限復制系統 瀏覽:541
受權代理書什麼寫 瀏覽:160
全球多少晶元使用蔡司技術製造 瀏覽:821
什麼節點負責數據的存儲 瀏覽:675
廣西掃碼抗疫情小程序如何更換個人信息 瀏覽:111
如何把iphone的程序同步到ipad中 瀏覽:50
程序員出差住宿怎麼辦 瀏覽:531
怎麼查網紅的直播數據 瀏覽:75
收縮毛孔去角質產品有哪些 瀏覽:418
如何把微信小程序的照片保存 瀏覽:737
ai數據怎麼能知道哪裡年輕人多 瀏覽:442
廠家如何做好後市場 瀏覽:916
三菱系統m70如何用小內存傳程序 瀏覽:687
籃球技術不到位怎麼辦 瀏覽:930
集體土地確權怎麼交易 瀏覽:492