列名 userid 不明确。 表结构_那些你不知道的表结构设计思路
ERP表結(jié)構(gòu)的設計--第9篇
用日志記錄“開源軟件”的誕生
赤龍ERP開源地址:
點亮星標,感謝支持,與開發(fā)者交流 kzca2000
碼云:
https://gitee.com/redragon/redragon-erp
GitHub:
https://github.com/redragon1985/redragon-erp
赤龍ERP官網(wǎng):
https://www.redragon-erp.com
前言
上一篇文章說了ERP的系統(tǒng)設計,數(shù)據(jù)庫結(jié)構(gòu)只是一筆帶過,今天重點說說我在【赤龍ERP】的表結(jié)構(gòu)里面的都做了哪些特殊的設計,并且為什么這么設計。
ID與編碼
我在每一個表幾乎無一例外的都增加了兩個默認的字段,即ID和Code。這兩個字段看似都是可標識數(shù)據(jù)的唯一性字段,但為什么要設計兩個呢?它們當然各有用途。
(1)ID是一個表的主鍵,一般都是自增的,主要用于排序、定位、查詢,由于它是數(shù)字所以更清晰、速度更快。
(2)Code是唯一鍵,類型多是字符。可用UUID或雪花算法等生成。當然在有具體業(yè)務場景的情況下,可以由用戶輸入或按邏輯生成。除了可以具備強語義外,還優(yōu)先用于外鍵的關(guān)聯(lián)。
這里做個特殊說明:為什么要用Code做外鍵,ID也可以做外鍵啊。外鍵要具備兩個最大的特點:唯一,不可變。ID由于多是自增或由數(shù)據(jù)庫的特質(zhì)生成,所以不能保證在數(shù)據(jù)遷移時絕對不變。所以使用Code更安全可靠一些。
組織機構(gòu)
這個字段名為:org_code,表示組織機構(gòu)。那什么是組織機構(gòu)呢?簡單說就是獨立的公司或主體。作用主要是用于數(shù)據(jù)隔離,由于沒有必要為不同公司建立不同的數(shù)據(jù)表,所以用一個字段將不同公司的數(shù)據(jù)隔離開。有點像財務的賬套的概念。
操作記錄
在每個表都會增加四個字段,用來記錄誰在什么時間做了數(shù)據(jù)操作。分別為:
(1)CREATED_DATE(創(chuàng)建時間)
(2)LAST_UPDATED_DATE(最后修改時間)
(3)CREATED_BY(創(chuàng)建人)
(4)LAST_UPDATED_BY(最后修改人)
創(chuàng)建人和創(chuàng)建時間,在數(shù)據(jù)新增的時候設置;最后修改人和最后修改時間,在數(shù)據(jù)更新的時候設置
數(shù)據(jù)權(quán)限
信息化系統(tǒng)都需要數(shù)據(jù)權(quán)限的控制,即什么人可以操作哪些數(shù)據(jù)。一般企業(yè)級信息化,數(shù)據(jù)權(quán)限的邏輯都是在組織架構(gòu)的層面進行控制的。一般包括:自己操作自己的數(shù)據(jù)、不同級別部門內(nèi)的數(shù)據(jù)可共享、整個公司的數(shù)據(jù)共享。
為了解決上述的數(shù)據(jù)權(quán)限控制的需要,所以增加一個字段DEPARTMENT_CODE(部門編碼)。這個字段只會記錄創(chuàng)建當前數(shù)據(jù)的人所屬的部門,即這條數(shù)據(jù)的所屬部門。代碼層面再結(jié)合數(shù)據(jù)權(quán)限,即可實現(xiàn)數(shù)據(jù)權(quán)限的管控。
版本與日志表
在需要記錄數(shù)據(jù)版本的表中增加VERSION(版本號),常見的業(yè)務場景就是“變更功能”。下面舉個例子,比如:采購訂單變更。當我們創(chuàng)建了一個采購訂單,并且審批通過后,這個數(shù)據(jù)本質(zhì)是不能修改的,但出現(xiàn)需要修改的時候,我們就需要用上采購訂單變更功能。當訂單變更時,需要做的就是版本號+1,并且在日志表生成歷史數(shù)據(jù)。
自定義字段
自定義字段的作用是讓用戶可以根據(jù)自己的業(yè)務需要增加一個表的字段并保存數(shù)據(jù)。做法是需要在一個表中增加attribute字段,多數(shù)情況下會預留多個attribute字段,字段名attribute1、attribute2、attribute3以此類推。然后再通過可配置的功能來設置attribute字段和字段中文名的對應關(guān)系即可。
希望您讀完本文可以幫助筆者進入【碼云】或【GitHub】搜索“赤龍ERP”點擊星標。等待著您的支持!
總結(jié)
以上是生活随笔為你收集整理的列名 userid 不明确。 表结构_那些你不知道的表结构设计思路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ncm转换mp3文件时遇到问题:未找到文
- 下一篇: 第一、二次实训作业