mysql - 問(wèn)個(gè)數(shù)據(jù)庫(kù)的設(shè)計(jì)規(guī)范,中間表名應(yīng)該用單數(shù)還是復(fù)數(shù)?
問(wèn)題描述
問(wèn)個(gè)數(shù)據(jù)庫(kù)的設(shè)計(jì)規(guī)范問(wèn)題,假設(shè)有個(gè)用戶(hù)表users 有個(gè)角色表roles 用戶(hù)跟角色之間是多對(duì)多關(guān)系,那我中間表應(yīng)該用users_roles 還是用user_role? Laravel 默認(rèn)是用單數(shù)user_role我想知道有什么設(shè)計(jì)規(guī)范?
問(wèn)題解答
回答1:一般是采用merge_user_role或者mapping_user_role這一類(lèi)的形式,user_role當(dāng)然也行,但這樣容易和其他表混淆。至于是否使用復(fù)數(shù),主要看其他表的設(shè)計(jì),如果你的users表就是復(fù)數(shù)的,你這里大可也使用復(fù)數(shù),但一般表名都不以復(fù)數(shù)形式出現(xiàn),所以這里也無(wú)需出現(xiàn)復(fù)數(shù)。
回答2:沒(méi)必要糾結(jié)到底是單復(fù)數(shù),風(fēng)格統(tǒng)一 就好
回答3:沒(méi)有規(guī)定,不過(guò)建議用單數(shù),因?yàn)槿绻?fù)數(shù)要多占2個(gè)字符,在ORACLE里標(biāo)識(shí)符長(zhǎng)度最大30,在某些情況下用復(fù)數(shù)就超了
回答4:命名規(guī)范統(tǒng)一即可,如果單個(gè)表名用復(fù)數(shù),表關(guān)系的名稱(chēng)中也建議用復(fù)數(shù)。
