這裏是我的表中的最低版本:插入一行包含行的ID另一列,除了id列
CREATE TABLE posts (
id int unsigned PRIMARY KEY auto_increment,
root_id int unsigned,
parent_id int unsigned
);
的數據是一個樹狀結構,所以parent_id
字段包含明顯, root_id
字段包含根帖子的ID,即樹中最頂端的帖子,樹中最早的祖先。
現在,當我插入一個本身是新樹根的新帖子時,parent_id
將爲空,因爲它沒有父項,但root_id
應該引用自身。有沒有辦法做一個插入,將相同的值id
到root_id
?我想避免插入,獲得新的ID,並改變第二個查詢的根id,但也許這是唯一的方法。
在此先感謝。
您可以使root_id和parent_id具有相同的值以指示最上面的項目。查找觸發器。 – Tim
確實如此,但這會讓我的應用程序邏輯複雜化,我必須根據是否存在根標識符或者是否爲空來執行兩個ifs。 – Sophivorus
我不同意。您將不允許使用空值,使parent_id成爲必填字段。 – Tim