Sql-Server
多張同一個主鍵的表好還是一張大數據表好?
因此,到目前為止,只有一個主鍵用於位置 ID。
目前在 Excel 中有多個表格(工作表)用於以下內容
- 事件(位置 ID、日期、標題、描述)
- 動物(位置 ID、物種、名稱、種群)
- 限制(位置 ID、許可證、區域)
以上是不好的做法嗎?根據我線上閱讀的內容,您不應該在多個表中使用相同的主鍵。
應該如何建構表以遵循“最佳實踐”,它是一個大數據庫表還是可以留在多個表中?
根據 mustaccio 的評論,當您
PrimaryKey
在Tables
每個Table
. 換句話說,根據您Tables
在問題中提供的架構,您將永遠無法在一個事件中擁有超過一種動物,或者對特定動物的限制超過一種,等等。它們都共享相同的unique
位置ID。如果這滿足您的需求,那麼您的設計就可以了。但是,如果您希望能夠在多個事件中擁有多個動物,並且針對不同位置等具有不同的限制,那麼使用以下設計可能會更好:
添加第四個
Table
名為 Locations 的 Location IDPrimaryKey
。從所有其他位置刪除位置 ID
PrimaryKey
(和),而是在它與位置 ID 上的位置之間創建關係。unique constraint``tables``ForeignKey``table
unique PrimaryKey
使用適當的名稱向事件、動物、限制添加一個新欄位tables
(例如,事件的事件 IDtable
、動物的動物 IDtable
等)。為了直接回答您的主要問題,最好將它們分開
Tables
。這稱為數據庫規範化,對於查詢效率和消除不必要的數據冗餘很重要。一般來說,關注點分離應該被拆分成單獨Tables
的 .