0 建議在ssms表設(shè)計(jì)器里增加說明和默認(rèn)設(shè)置列,方便創(chuàng)建庫(kù)邪狞。效果如下
設(shè)置方法參考 http://www.reibang.com/p/d7d55a2f53d3
1 每個(gè)表一定要有主鍵
主鍵屬于索引的一種肆糕,會(huì)提高查詢效率载萌。
2 每個(gè)表都要寫中文注釋和默認(rèn)值
有中文注釋(也就是數(shù)據(jù)庫(kù)[說明])虹蓄,方便業(yè)務(wù)理解,代碼生成工具也會(huì)調(diào)用注釋內(nèi)容方便代碼生成拼缝。
2.1 表都要有默認(rèn)值,除了個(gè)別的datetime類型
有默認(rèn)值个扰,避免判斷數(shù)據(jù)為null,判斷null效率很低下萎津。除了個(gè)別datetime類型可以允許為null卸伞,例如更新時(shí)間updatetime字段,如果給默認(rèn)值業(yè)務(wù)上可能會(huì)有歧義锉屈,避免這種情況可以設(shè)置為null荤傲。而addtime不允許為null是業(yè)務(wù)上的規(guī)定。
2.2 主鍵注釋可以不寫颈渊,要寫可寫表注釋
主鍵寫表注釋(說明)遂黍,方便查看表備注。
2.3 關(guān)聯(lián)其他表字段俊嗽,要在注釋里寫關(guān)聯(lián)表
如圖2 newsTypeid 注釋寫法:字段說明+ 關(guān)聯(lián)xxx表主鍵
2.4 如果表的值含義是整數(shù)類型雾家,C#程序可以用枚舉來表示
如圖2 newsTypeEnum 注釋寫法:字段說明 (枚舉)
2.5 如果表的值含義是文字類型,要寫上所有的值
如圖2 newsType2 注釋寫法:字段說明 [值1,值2,值3,值4,....] 绍豁。 注意值要以中括號(hào)表示
2.6 如果表的值含義是其他規(guī)則芯咧,用小括號(hào)進(jìn)行說明
如圖2 tags字段
3 禁止使用ntext、text 和 image作為數(shù)據(jù)庫(kù)字段類型
請(qǐng)改用 nvarchar(max)、 varchar(max)和 varbinary(max) 敬飒。
微軟官方都不推薦使用ntext邪铲、text 和 image。
https://docs.microsoft.com/zh-cn/sql/t-sql/data-types/ntext-text-and-image-transact-sql?redirectedfrom=MSDN&view=sql-server-ver15
說明一點(diǎn):nvarchar(4000) 跟 nvarchar(max) 不是一個(gè)東東无拗,nvarchar(數(shù)值) 只能是1到4000 雙字節(jié)長(zhǎng)度霜浴,而nvarchar(max)是存儲(chǔ)2GB長(zhǎng)度