資料庫設計字段

2021-09-01 12:24:49 字數 2736 閱讀 5025

型別

範圍(無符號)

大小範圍(有符號)

用途tinyint

(0,255)

1位元組(-128,127)

小整數值

smallint

(0,65 535)

2位元組(-32 768,32 767)

大整數值

mediumint

(0,16 777 215)

3位元組(-8 388 608,8 388 607)

大整數值

int或integer

(0,4 294 967 295)

4位元組(-2 147 483 648,2 147 483 647)

大整數值

bigint

(0,18 446 744 073 709 551 615)

8位元組(-9 233 372 036 854 775 808,9 223 372 036 854 775 807)

極大整數值

名稱解釋

顯示格式

yyyy-mm-dd

顯示範圍

1601-01-01 到 9999-01-01

應用場景

當業務需求中只需要精確到天時,可以用這個時間格式

後台取值

@jsonfield(format=」yyyy-mm-dd」)

名稱解釋

顯示格式

yyyy-mm-dd hh:mm:ss

顯示範圍

1601-01-01 00:00:00 到 9999-12-31 23:59:59

應用場景

當業務需求中需要精確到秒時,可以用這個時間格式

後台取值

@jsonfield(format=」yyyy-mm-dd hh:mm:ss」)

名稱解釋

顯示格式

yyyy-mm-dd hh:mm:ss

顯示範圍

1601-01-01 00:00:00 到 9999-12-31 23:59:59

應用場景

當業務需求中需要精確到秒或者毫秒時,或者該系統用於不同時區,可以用這個時間格式

後台取值

@jsonfield(format=」yyyy-mm-dd hh:mm:ss:sss」)(這裡只會精確到秒)

名稱解釋

顯示格式

hh:mm:ss

顯示範圍

00:00:00 到 23:59:59

應用場景

當業務需求中只需要每天的時間,可以用這個時間格式

後台取值

@jsonfield(format=」hh:mm」)(這裡是只精確到分,資料庫存的也就是只精確到分,比如 09:36:00,如果需要精確到秒。需要使用@jsonfield(format=」hh:mm:ss」))

1、精度:datetime和timestamp都可以精確到毫秒(我目前使用的5.5的mysql,所以只能精確到秒,據說高版本的可以用timestamp(3)與 datetime(3)精確到毫秒。),但是用的很少,一般精確到毫秒都是用timestamp,2、datetime和timestamp最大的區別只是用的場景不同,如果你的應用 是用於不同時區(就是國內和國外同時使用),這時候如果用datetime就會出現各種各樣的問題,但是如果使用timestamp就不會出現這種時差的問題。

型別範圍

說明char(n) [ binary]

n=1~255 個位元組 binary :分辨大小寫

固定長度

std_name cahr(32) not null

varchar(n) [binary]

n=1~255 個位元組 binary :分辨大小寫

可變長度

std_address varchar(256)

tinyblob

最大長度255個位元組(2^8-1)

blob (binary large objects)儲存二進位資料,且有分大小寫

memo text not null

tinytext

最大長度255個位元組(2^8-1)

blob

最大長度65535個位元組(2^16-1)

text

最大長度65535個位元組(2^16-1)

mediumblob

最大長度 16777215 個位元組(2^24-1)

mediumtext

最大長度 16777215 個位元組(2^24-1

longblob

最大長度4294967295個位元組 (2^32-1)

longtext

最大長度4294967295個位元組 (2^32-1)

enum

集合最大數目為65535

列舉(enumeration),enum單選、set複選

*** enum(1,0) habby set(『玩電玩』,'睡覺』,'看電影』,'聽**』)

set集合最大數目為64

同上辨別null與not null :null為允許儲存空值(null)

在my sql 中varchar定義的長度的單位是字元,哪怕是1個多位元組字元也是1個字元,如中文和英文本母都被當作1個字元來對待。

空值是一種特殊的狀態, 表示某乙個字段"沒有被處理過"幾乎在所有的資料庫中甚至是程式語言中, 空與非空都有其存在的意義, 舉個例子, 乙個人員表中, 有乙個年齡字段, 這個年齡字段如果為非 空, 則在不知道人員年齡的情況下, 資料無法入庫, 否則會顯示個奇怪的年齡(比如0歲, 或者-1歲等)而有些情況澤不可以為空, 最常見的就是"主鍵", 比如身份證號之類的

mysql欄位設計 書 資料庫字段設計

一 上下架欄位 很多產品都有上下架的需求,比如商品管理,廣告管理,圖書管理等等。一般我們都用乙個狀態字段來表示他的狀態來,不同的狀態下我們可以進行不同的業務操作。但有時候真實的狀態又與時間有關。某時間到了就上架,某時間到了就要下架。如果我們只用乙個狀態字段來表示狀態,那麼我們就需設計乙個定時任務,每...

資料庫設計 資料庫設計之欄位冗餘

學過資料庫設計的同學都知道,資料庫設計有三大正規化,但是在實際工作中,三大正規化很難被嚴格的執行。本文將給大家介紹一種常見的 違反正規化的資料庫設計方案 字段冗餘1 經典示例先來看乙個經典的例子,在一些 系統裡,要顯示已購買的訂單,一般會顯示訂單號 下單時間 訂單金額 商品名稱等,如下圖。正常我們如...

資料庫冗餘字段設計作用

在設計資料庫時,某一字段屬於乙個表,但它又同時出現在另乙個或多個表,且完全等同於它在其本來所屬表的意義表示,那麼這個字段就是乙個冗餘字段,外來鍵除外 以上是我自己給出的定義 冗餘欄位的存在到底是好還是壞呢?這是乙個不好說的問題。可能在有人看來,這是乙個很蹩腳的資料庫設計。因為在資料庫設計領域,有乙個...