命名規則:
1、資料庫名、表名、欄位名全部採用小寫字母,以下劃線分割
表設計原則:
1、各表必須設定主鍵(可以是組合主鍵),否則無法生成該錶的**
2、當表中有 create_time、update_time欄位時,web後台會生成獨特的功能,否則生成的web後台還需要稍微改一下(請習慣建立這兩個字段)
3、當表中存在關係時,應該設定好錶與表之間的關係鍵對應,因為這是nicpetshop最大的特點
例:當存在 dbo.news 表中 class_id -> dbo.news_class_id 表的 id 關係時,會得到以下擴充套件:
a、list 專案名.bll.news.getitemsbyclass_id(...)
b、專案名.mode.newsinfo 下會多出乙個屬性 news_classinfo
c、web後台下 news 新增/修改時會生成乙個 news_class 的下拉框
4、當表存在惟一鍵的時間,應該設定它,bll 中會生成相應的業務方法
例:當存在 dbo.member 表中的惟一鍵 username 欄位時,會得到以下擴充套件:
a、專案名.model.memberinfo 專案名.bll.member.getitembyusername(...)
5、如果是乙個無限級表,請新增字段 parent_id -> 自身.id
例:有以下表時,會生成更豐富的**
create table [dbo].[dir](
[id] [int] identity(1,1) not null,
[name] [nvarchar](64),
[parent_id] [int],
[remark] [nvarchar](256),
constraint [pk_news_class] primary key nonclustered
[id] asc
)with (ignore_dup_key = off) on [primary]
) on [primary]
goalter table [dbo].[dir] with nocheck add constraint [fk_dir_dir] foreign key([parent_id])
references [dbo].[dir] ([id])
a、web後台的會生成模擬的樹型下拉框
b、bll 和 model 層會按普通關係一樣的特性
如果表沒有主鍵,生成不了
如果表存在外來鍵,沒有建,生成了沒什麼用,不方便
如果表存在惟一鍵,沒有建,也會少一點方便
如果是無限級關係,你沒有鍵關係,那你錯大了,本來生成器會幫你全部生成
更多原則等待新增中……
資料庫表的設計原則
建立資料庫裡最基本的應該就是建表,建索引 儲存過程等一系列操作了。談到表就不得不談到實體。資料實體 什麼是實體,客觀存在並且可以相互區別的事物稱為實體。這裡我們就簡單的把它理解為乙個表吧,描述實體的特性,我們就把他們稱為了屬性。也可以說當我們把乙個資料庫表當作乙個實體,那麼它裡面的所有字段是不是就是...
高效能Mysql資料庫表設計原則
以下觀點參考 高效能 mysql 歡迎指教。1 更小通常更好 選擇表示資料的最小型別 正確儲存你的內容 比如說,能夠使用char 資料型別儲存,就不必選擇text,能夠使用int型儲存資料,就不應該使用long型。理由 更小的資料型別使用了更小的磁碟空間,記憶體和cpu快取,而且需要的cpu週期也更...
MySQL 資料庫表設計
字段具有原子性,不可再分。所有關係型資料庫系統都滿足第一正規化 資料庫表中的字段都是單一屬性的,不可再分 要求實體的屬性完全依賴於主鍵。所謂完全依賴是指不能存在僅依賴主鍵一部分的屬性,如果存在,那麼這個屬性和主關鍵字的這一部分應該分離出來形成乙個新的實體,新實體與原實體之間是一對多的關係。為實現區分...