成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

軟件設(shè)計(jì)技巧之?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)還能這樣玩

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
隨著軟件設(shè)計(jì)的發(fā)展,設(shè)計(jì)思想不斷革新,作為程序員,就需要不斷的學(xué)習(xí),不斷的嘗試新方法,本文將介紹一種新的數(shù)據(jù)庫(kù)設(shè)計(jì)方法,個(gè)人感覺非常符合現(xiàn)代設(shè)計(jì)風(fēng)格,接下來(lái)一起看看吧。

數(shù)據(jù)庫(kù)設(shè)計(jì)回顧

記得剛學(xué)習(xí)java開發(fā)的時(shí)候,老師推薦PowerDesigner設(shè)計(jì)數(shù)據(jù)庫(kù),圖形化更加直觀易懂。

后來(lái)工作后,實(shí)際開發(fā),喜歡直接連接數(shù)據(jù)庫(kù)操作,因此使用Navicat作為數(shù)據(jù)庫(kù)管理工具,順帶包攬?jiān)O(shè)計(jì)工作。

而在團(tuán)隊(duì)協(xié)作中,數(shù)據(jù)庫(kù)文檔是評(píng)審必須的,想想自己整理的word文檔,免不了會(huì)吐槽一番。最近幾年,word文檔寫的很少了(除非正式的文檔),因?yàn)閙arkdown的出現(xiàn),更加符合程序員的編寫習(xí)慣,感覺就和寫代碼一樣,縮進(jìn)、特殊標(biāo)記、代碼插入、表格等,很方便的就能實(shí)現(xiàn)。

為了講下面的內(nèi)容,這里我簡(jiǎn)單說(shuō)明下markdown是什么。

markdown是一種標(biāo)記語(yǔ)言,使用更加易懂的純文本格式,很方便實(shí)現(xiàn)寫文章所需的各種效果。

那么,你有沒有想過,數(shù)據(jù)庫(kù)設(shè)計(jì)也能通過類似的標(biāo)記語(yǔ)言呢?

數(shù)據(jù)庫(kù)標(biāo)記語(yǔ)言

今天要講的主角正式登場(chǎng)(^_^),她就是DBML,全稱是Database Markup Language(數(shù)據(jù)庫(kù)標(biāo)記語(yǔ)言)。講之前,先來(lái)張靚照瞧瞧

軟件設(shè)計(jì)技巧之?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)還能這樣玩

從上圖可以看到,table、pk、varchar等關(guān)鍵字,再熟悉不過了。這種語(yǔ)言是專門為數(shù)據(jù)庫(kù)設(shè)計(jì)的,所以叫數(shù)據(jù)庫(kù)標(biāo)記語(yǔ)言,接下來(lái)我們就想起的細(xì)品下她的美好。

DBML語(yǔ)法

  • 表定義
  1. Table table_name { 
  2.     column_name column_type [column_settings] 

table_name:表名

column_name:字段名

column_type:字段類型

column_settings:字段的設(shè)置

  • 字段定義
  1. Table buildings { 
  2.     ... 
  3.     address varchar(255) [uniquenot null, note: 'to include unit number'
  4.     id integer [ pk, uniquedefault: 123, note: 'Number' ] 

主鍵:primary key 或 pk

空/非空:null 或 not null

注釋:note

唯一索引:unique

默認(rèn)值:default

  • 索引定義
  1. Table bookings { 
  2.   id integer 
  3.   country varchar 
  4.   booking_date date 
  5.   created_at timestamp 
  6.  
  7.   indexes { 
  8.       (id, country) [pk] // composite primary key 
  9.       created_at [note: 'Date'
  10.       booking_date 
  11.       (country, booking_date) [unique
  12.       booking_date [type: hash] 
  13.       (`id*2`) 
  14.       (`id*3`,`getdate()`) 
  15.       (`id*3`,id) 
  16.   } 

主要分三種索引:

單字段索引、復(fù)合索引、表達(dá)式索引

  • 外鍵關(guān)系定義
  1. //Long form 
  2. Ref name_optional { 
  3.   table1.column1 < table2.column2 
  4.  
  5. //Short form: 
  6. Ref name_optional: table1.column1 < table2.column2 
  7.  
  8. // Inline form 
  9. Table posts { 
  10.     id integer 
  11.     user_id integer [ref: > users.id] 

 

  • 注釋
  1. // Inline form 

使用雙斜杠即可

  • 備注
  1. Table users { 
  2.   id int [pk] 
  3.   name varchar 
  4.  
  5.   Note: 'This is a note of this table' 
  6.   // or 
  7.   Note { 
  8.     'This is a note of this table' 
  9.   } 
  • 枚舉
  1. enum job_status { 
  2.     created [note: 'Waiting to be processed'
  3.     running 
  4.     done 
  5.     failure 

DBML工具

通過DBML可以讓表設(shè)計(jì),通過純文本的方式,很方便的描述。那么,如果僅僅是這樣的,肯定不夠吸引,我猜你還希望

  • DBML轉(zhuǎn)成SQL語(yǔ)句
  • SQL語(yǔ)句轉(zhuǎn)換成DBML
  • 可視化

當(dāng)然了,這些DBML都給你提供了,先來(lái)看張圖

軟件設(shè)計(jì)技巧之?dāng)?shù)據(jù)庫(kù)設(shè)計(jì)還能這樣玩

這個(gè)是所見即所得,在線工具。

至于DBML與SQL的互相轉(zhuǎn)化,DBML提供了基于node的命令工具dbml2sql、sql2dbml

總結(jié)

DBML是一個(gè)新型的數(shù)據(jù)庫(kù)設(shè)計(jì)工具,當(dāng)然有人喜歡,有人吐槽,當(dāng)然希望你能夠喜歡哈。軟件設(shè)計(jì)隨著時(shí)光的推進(jìn),很多新的理念被推出,作為程序員,當(dāng)然是要不斷的吸收和轉(zhuǎn)化。

責(zé)任編輯:龐桂玉 來(lái)源: 今日頭條
相關(guān)推薦

2020-11-16 13:38:31

PostMessage

2011-03-10 11:17:03

數(shù)據(jù)庫(kù)設(shè)計(jì)技巧

2021-07-28 06:10:47

拖拽設(shè)計(jì)器 transmat

2021-09-05 07:55:37

前端Emoji 表情

2024-08-02 08:38:20

Controller接口地址

2021-04-01 05:40:53

分庫(kù)分表數(shù)據(jù)庫(kù)MySQL

2020-12-30 09:45:50

MySQL數(shù)據(jù)分離數(shù)據(jù)庫(kù)

2013-05-08 09:12:44

2011-07-21 14:33:02

設(shè)計(jì)模式

2021-01-30 07:51:59

微信微信8.0騰訊

2019-08-12 14:45:50

軟件設(shè)計(jì)Java

2017-08-28 15:00:20

軟件系統(tǒng)架構(gòu)風(fēng)格

2019-10-29 16:02:14

開發(fā)者技能工具

2011-03-01 16:00:08

java數(shù)據(jù)庫(kù)

2024-12-03 09:45:34

2011-05-19 15:25:20

數(shù)據(jù)庫(kù)結(jié)構(gòu)

2016-11-29 08:50:17

數(shù)據(jù)庫(kù)軟件架構(gòu)

2018-12-12 11:30:54

JavaString字符串

2021-04-09 08:23:30

Css前端加載動(dòng)畫

2024-01-30 09:21:29

CSS文字效果文字裝飾
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产午夜在线观看 | 久久鲁视频 | 国产第1页 | 欧美日韩国产在线观看 | 日日干日日色 | 国产精品三级 | 亚洲 中文 欧美 | 黄色在线免费看 | 国产精品精品久久久 | 精品中文视频 | 日韩在线一区二区三区 | 性高湖久久久久久久久aaaaa | 毛片在线免费 | 国产精品美女久久久久久久久久久 | 日韩国产精品一区二区三区 | 久久久久国产精品午夜一区 | 九九热精| 久久久久久国产精品免费免费男同 | 色婷婷综合久久久中文字幕 | 综合久| 91xxx在线观看 | 国产a级毛毛片 | 久久国产一区二区三区 | 精品国产精品三级精品av网址 | 青青久久| 一级a性色生活片久久毛片 一级特黄a大片 | av毛片在线免费观看 | 午夜视频在线免费观看 | 午夜国产 | 91玖玖| 免费特黄视频 | 二区国产 | 最新中文字幕第一页视频 | 精品视频一区二区三区 | 日韩欧美在线观看 | 成人在线精品 | 黄网站在线播放 | 中文字幕视频在线 | 日韩在线视频精品 | 久久午夜视频 | 国产区精品|