1. 程式人生 > >C#學習-資料庫設計之欄位設計基礎(一)

C#學習-資料庫設計之欄位設計基礎(一)

1.關於命名風格:

(1)每個單詞加下劃線 (2)採用帕斯卡命名,每個單詞首字母大寫

注意:反對拼音或者漢字

2.關於主鍵,外來鍵,等基礎概念小結

(1)主鍵:一般採用int/bigint型別自增,也可以採用GUID(全球唯一識別碼)   程式生成,欄位較長,比較佔用資料庫空間

(2)外來鍵:不建議用真實外來鍵(即references),一般採用虛擬外來鍵

(3)儲存過程:一般比較複雜的邏輯處理,或者複雜的報表查詢建議用,不然不推薦使用太多,更多的事情還是教給程式處理比較好

(4)事務:事務有四個原則(原子性,一致性,隔離性,永續性),使用事務的過程中會進行鎖表,所以事務儘量簡介,濫用易造成死鎖

(5)油標:將結果集迴圈出每一個物件進行處理,類似程式中的for迴圈,不推薦用,使用過程中會鎖表,嚴重影響效能

(6)檢視:多張表聯合起來的一個查詢,並不會提高效能,只是簡化了查詢語句,提供了查詢的方便性

(7)觸發器:一般比較少用,分 instead of觸發器和 after觸發器

(8)函式:自定義函式和系統函式,自定義函式可以方便查詢,但不可多用,因為容易給資料庫造成壓力

(9)關於刪除,一般是邏輯刪除(更新is_deleted的標記欄位,保留資料,資料為王),不需要的資料可以物理刪除

3.關於資料庫設計

(1)三大正規化:

1.每列都確保其原子性,即每一列都是不可拆分的,如:地址中的省,市,區可以分為三個欄位進行儲存

2.每列都和主鍵內容相關,如:使用者表就只存使用者表,不要將部門的資訊存進來,應該單獨分開部門表字段

3.每列都和主鍵內容直接相關,如:訂單表中只存產品id欄位,產品的名稱,價格等屬性分表儲存

(2)設計思路

一般根據“一對一,多對一,一對多,多對多”的原則來設計主從表

相關推薦

C#學習-資料庫設計設計基礎()

1.關於命名風格: (1)每個單詞加下劃線 (2)採用帕斯卡命名,每個單詞首字母大寫 注意:反對拼音或者漢字 2.關於主鍵,外來鍵,等基礎概念小結 (1)主鍵:一般採用int/bigint型別自增,也可以採用GUID(全球唯一識別碼)   程式生成,欄位較長,比較佔用

資料庫設計型別

1.一般的一個數據庫中欄位的型別有text,int,tinyint,datetime,vachar,char這幾個 2.它們的長度一般設定為: 型別       長度     小數點 text--》0          (存放文字,文章) datetime--》長度,

課程設計加法計算器(2)(C程式碼)

#include<reg52.h> typedef unsigned char uint8; typedef unsigned int uint16; sbit rw=P2^5; sbit rs=P2^6; sbit e=P2^7; sbit led=P3

關於資料庫“狀態”設計的思考與實踐

目錄 1. 問題綜述 2. 業務分析 3. 問題一、訂單表的‘訂單狀態’欄位應當包含哪些狀態值? 4. 問題二、訂單表的‘訂單狀態’欄位的字典值的表示形式? 5. 問題三、資料庫表的‘狀態’欄位使用何種型別 6. 問題結論彙總 7. 參考資料 正文 最近在做訂單及支付相關的系統,在訂單表的設

如何設計動態(不定)的產品資料庫表?--淘寶多產品屬性設計方法

看到szsm部落格,覺得他分析的很不錯,這裡把他的資料整理一下 --------------------------------------------------------------------------------------------------------

C#學習-資料庫觸發器

概念:   觸發器(trigger)是SQL server 提供給程式設計師和資料分析員來保證資料完整性的一種方法,它是與表事件相關的特殊的儲存過程,它的執行不是由程式呼叫,也不是手工啟動,而是由事件來觸發,當對一個表進行操作( insert,delete,&nbs

高效能MYSQL筆記-mysql型別和設計規範

1.優先使用符合業務需要的最小的資料型別1.1 將ip用UNSIGNED INT存:內建函式INET_ATON(字串)和INTE_NTOA(整數)分別是點分十進位制字串和整數的轉換函式1.2 非負數用無符號型別(比如前面ip值對應的數字一定為正,所以用的資料型別為無符號整形

ElasticSearch新增表,設計

curl -XPOST 'localhost:9200/index/aatype/_mapping?pretty' -d '{     "aatype": {             "properti

資料庫設計概念結構設計---------E-R圖詳解

0、試述採用E-R方法進行資料庫概念設計的過程。 答:採用E-R方法進行資料庫概念設計,可以分成3步進行:首先設計區域性E-R模式,然後把各區域性E-R模式綜合成一個全域性的E-R模式,最後對全域性E-R模式進行優化,得到最終的E-R模式,即概念模式。 1、某大學實現學分制

C#中如何向資料庫一個Int新增空值?

 例如員工表:         欄位名   資料型別         姓名           nvarchar     性別           int         其中“性別”是允許為空的,當新員工在註冊自己資訊時沒有在textBox這些控制元件中填這項的時候,如何往

資料庫設計概念結構設計---------E-R圖詳解 (各種各樣的例項)

http://blog.csdn.net/zxq1138634642/article/details/9121363 0、試述採用E-R方法進行資料庫概念設計的過程。 答:採用E-R方法進行資料庫概念設計,可以分成3步進行:首先設計區域性E-R模式,然後把各區域性E-R

給大家說明。資料庫技術儲存過程設計與實現

儲存過程的生成流程圖 在上一篇的文章中我們知道了由一個儲存過程的語句生成一個語法樹,但是這個語法樹的儲存在資料庫系統中,這裡給出一個儲存過程的儲存方案 可以看出儲存過程的原來的sql語句是儲存在一張表裡面的。並且也把儲存過程的語法樹儲存在了記憶體中,方便執行,不用再

數位電路設計32先進進加法器的verilog實現

`timescale 1ns / 1ps ////////////////////////////////////////////////////////////////////////////////// // Company: SMIE // Engineer: C

資料庫有很多C#通過反射輕鬆GET/SET

using (var dbcontext = new dbautotest4in1Entities1())

C#生成驗證碼隨機數

返回 args nbsp ica ebo inpu cti spa ini 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using Sys

Mysql資料庫查詢重複

select * from promotion_hanging_user_info a where (a.handing_activity_id,a.openid) in (select handing_activity_id,openid from promotion_hanging_u

資料庫中敏感的標記、標示

資料治理需要面臨和解決的最重要的問題是,企業這麼多的資料庫,每個資料庫這麼多的表,每個表這麼多的欄位,如何進行資訊資產的分類分級。 通過以下方法,可以自動的取企業所有資料庫、所有表、所有欄位,根據欄位的值,利用正則表示式等方式判斷此欄位是否屬於使用者敏感資訊,如姓名、手機、地址、身份證等。 最終形成資料的

ORM基礎及其引數介紹

一、外來鍵ForeignKey 1、欄位引數 1.to 設定要關聯的表 2.to_field 設定要關聯的表的欄位(一般不設定,預設使用主鍵id關聯) 3.related_name 反向操作時,使用的欄位名,用

C# 類中的靜態始終繼承自基類

我們試想一下現在有一個類Parent,它有一個static的int型別欄位number,然後如果類Parent有三個子類Child01、Child02和Child03,那麼改變Parent.number的值的話,Child01.number、Child02.number和Child03.number的值也會被

字串存入資料庫date型別

有時候為了計算方便等原因需要將時間以date格式存入資料庫,但是前臺傳過來的資料型別都是字串,如果將字串直接插入date型別的欄位中會拋:ORA-01861: 文字與格式字串不匹配。 前臺頁面有一個表單,如下所示: <form action="......" method="get"&