小弟在工作上的疑惑,請社群的各位前輩可以一起討論,感謝(鞠躬)
資料表、欄位命名格式
目前我的作法是全小寫並用底下分開兩個單字
Table Name : customer
Table Column : customer_id , customer_name , customer_sample_name
在同一個 customer Table 底下的欄位,全部都會加上自身的 TableName
可以看出來每多一個單字,欄位名稱就會越來越長...
其實名稱長不是太大的問題,但轉換 EF Core 的 EDM 名稱就會越來越長到不好識別
我個人反思資料表欄位的前綴詞的必要性是否必須存在?
若為 PK 例如: customer_id , product_id 就蠻必要的
但 name , tel , fax 這些類型的欄位前綴詞的表名稱就顯得有些多餘?
當然我了解不管怎麼命名,只要好維護並且繼續堅持命名規則,這樣才能持續開發下去
在這邊只是想了解各位先進是如何命名,命名的觀點為何?
(若有不對的地方,請不吝指教,謝謝)
查閱了 SQL Server 跟 MySQL 的 Sample
SQL Server Sample :
https://sdwh.dev/posts/2021/12/SQL-Server-Sample-Databases/
https://dzone.com/.../collection-sql-server-sample-databases
MySQL Sample :
https://www3.ntu.edu.sg/.../prog.../sql/SampleDatabases.html
這邊我也請教了 #ChatGPT 神器
提供我的命名習慣給你參考,欄位名稱只要可以明確定義出資料用途就可,通常我不會另外加其它前綴,如果欄位定義複雜或是難以翻譯,才會考慮用其他名稱來代替。
例如 : "去年學生會幹部人數"這個欄位,可能就會用LY代表去年,C代表學生會,PC代表人數。
總而言之,這種資料面的命名,讓人看得懂才是重中之重,不然就是需要有文件說明清楚。
create table Entity
(
EID int identity(1, 1),
EName nvarchar(64),
EDescription nvarchar(256),
JData nvarchar(max),
Since datetime default(getdate()), --data create time
LastUpdate datetime default(getdate()),
[Status] tinyint,
constraint PK_Entity primary key(EID),
constraint CK_Entity_JData check(isjson(JData) = 1),
constraint UQ_Entity_EName unique(EName)
)
create table RelationShip
(
EID1 int,
EiD2 int,
constraint PK_RelationShip primary key(EID1, EID2),
constraint FK_RelationShip_EID1 foreign key(EID1) references Entity(EID),
constraint FK_RelationShip_EID2 foreign key(EID2) references Entity(EID)
)
go
如果你的欄位命名是在 DW倉儲作運用的, 有意義的欄名, 就很重要了.
如:CUST_LOAN_RATE, ACCT_CURRENT_BAL