我正在使用標準的SQL數據庫,並試圖弄清楚是否拼合一張表或使其更「面向對象」。對我而言,較小的表格更易於閱讀,但需要連接表格並且具有一對一的關係。這通常是一種很好的做事方式,還是在SQL世界中被壓抑了?SQL一對一關係vs扁平化
我有具有以下屬性表:
MYTABLE
- ID
- NAME
- LABEL
- CREATED_TS
- MODIFIED_TS
- CREATED_USER
- MODIFIED_USER
對我來說,創建/修改的字段將自己的對象。實際上還有更多的領域,所以它不僅僅是這麼小。我會認爲創建另一個名爲「MYTABLE_MODINFO」的表或類似於具有CREATED和MODIFIED字段的表,並且當它們需要數據時它們將被連接。這些表格不是高訪問表格,它們不會每分鐘甚至數百行查詢數量很大,所以我不認爲效率會成爲一個問題。
所以主要是我想知道的是這是一個普遍接受的設計,或者你應該一般保持你的桌子結構平坦?
修改信息不是一個不同的「對象」 - 它本質上是主要記錄的一部分。你爲什麼要把它們分開? – Cylindric
雖然,由於'Created _...'行將在整個過程中重複,您可能會考慮只更新行 - 創建者是第一個修改器(雖然性能折衷)。另外,請不要在列名中使用數據類型後綴 - 您可能會用自己的腳攻擊自己。使用'createdAt','createdBy','modifiedAt','modifiedBy'等。 –