簡體   English   中英

是否使用一對一的MySQL Relation?

[英]Use one-to-one MySQL Relation or not?

我有用戶表,並且需要使用作者合作伙伴數據進行擴展。 我應該在同一表中放置其他列還是應該以一對一的關系再創建2個表( user_authoruser_partner )?

例如,表和列被簡化。

用戶

id
name
email
password
avatar
is_active

user_author

user_id => user.id (PK, UNQ)
description
amount_per_text
max_text
is_active

user_partner

user_id => user.id (PK, UNQ)
name
description
image_logo
is_active

用戶不能同時是作者和伙伴。 然后,我可以擁有像User.php這樣的普通用戶類, UserPartner.phpUserAuthor.php這樣的類,它們可以擴展User.php類。

是否有意義,還是應該將這些列放在用戶表中?

兩種方法都是有效且經常使用的。

由於數據一致性,關系模式的規范化理論不允許將所有數據放在單個表中。 這將有利於采用多表方法。

在單表方法中,表中的每個記錄最終都會有很多空(空)字段。

但是,當使用多個表時,可能只需要執行一次或兩次連接即可確定記錄是合伙人還是作者。 因此,從性能的角度來看,單表解決方案是可取的。

在這兩種情況下,您都可以在用戶中包含一個額外的字段,例如“ recordType”,以快速,輕松地區分不同類型的記錄。 這將提供最佳的運行時性能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM