我一直在研究这个问题很长一段时间。在“解决”问题之后,它仍然在我的脑海中。
我的数据库在表之间有许多关系(所有多对一)。我将描绘一个情况:
users
projects (user_id, …)
forms (project_id, …)
form_elements (form_id, …)
form_element_lists (form_element_id, …)
如果某人更新了form_element_lists表的一行,我需要执行检查以确保允许用户编辑该特定行。我的第一个想法是做4个左连接。
但是因为更新行经常发生,所以我在每个表中添加了一个'user_id',因此可以在没有任何连接查询的情况下执行安全检查。否则,我有时甚至必须进行6次加入才能找到用户ID。
经过一些不眠之夜后,我想向您提出这个问题:是否更好(对于性能和数据库设计)进行6次连接,或者为所有表添加user_id字段?