亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我應該在所有相關表中包含自動增量 id 嗎?

我應該在所有相關表中包含自動增量 id 嗎?

PHP
qq_遁去的一_1 2021-12-03 15:24:39
我在 Laravel 應用程序中有多個表,具有 1 對 1 的關系,例如users, users_settings,user_financial還有一些一對多的關系,比如 users_histories我的問題是:1. 我應該總是首先包含增量id嗎?例如id,下面的表#2 中是否有必要?表格1:id (primary,increments) , name, email, password表 2:id (primary,increments), user_id, something_extra ^ why does every guide include this? // e.g. https://appdividend.com/2017/10/12/laravel-one-to-one-eloquent-relationships/我不能只使用 user_id 作為主鍵并跳過增量鍵嗎?因為我想在表 1 中插入數據后立即將其自動插入表 2。2. tablesLaravel 中的1-to-1 和 1-to-many 應該如何命名?`我搜索但沒有找到任何不同類型關系的命名約定......目前我這樣做:users帶有主鍵的表id是基礎。一對一: users_settings外鍵user_id一對多: users_histories foreign_keyuser_id多對多: users_groups foreign_keyuser_id前兩個表應該命名為settings/ setting,histories/history嗎?對不起,我在這里有點困惑。
查看完整描述

2 回答

?
慕的地8271018

TA貢獻1796條經驗 獲得超4個贊

我實際上在兩天前問了一個類似的問題。這取決于你,但我會說是的。在我的情況下,如果我不自動增加相關表中的所有 ID,數據將不會與正確的用戶相關聯。然而,有一種說法認為在這種情況下不應使用 auto_increment 列,但它們對其他事情很有用。根據某些人的說法,這些關系可能沒有那么有意義,因此關系的意義取決于您和數據表的具體情況。無論如何,在決定要做什么之前,您應該更多地研究 auto_incrementing 相關表中所有 ids 的優點,以及可能的缺點。無論哪種方式都很好,但它們提供了不同的優點和缺點-您


查看完整回答
反對 回復 2021-12-03
?
尚方寶劍之說

TA貢獻1788條經驗 獲得超4個贊

  1. 這是一個關于主鍵的爭論不休的話題。恕我直言,不,你不應該。數據庫中的每一列都應該有一個用途。在此之后,對于您的示例,我同意 auto_increment id 是多余的,這僅僅是因為它沒有目的。第二個表仍然唯一地描述用戶,因此主鍵應該是 user_id。

    除了上述之外,還有一個原則讓我決定是否需要auto_increment id:是否可以將表視為實體。例如,用戶顯然是一個實體,但關系不是(在大多數情況下),即組合鍵可以達到目的。但是,當關系表擴展為具有更多屬性并且它具有 auto_increment id 開始變得有意義時。

  2. 我對 Laravel 沒有太多經驗,但數據庫表的命名不應該由框架決定。比較 history 和 user_history,新 DBA 或開發人員在不查看其數據的情況下對這兩個名稱有何期望?user_history 更準確地描述了該表


查看完整回答
反對 回復 2021-12-03
  • 2 回答
  • 0 關注
  • 187 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號