我正在計劃建立一些多對多的表關係。從表格中「刪除」的最佳方法是什麼?我應該將某列標記爲已刪除嗎?刪除多對多關係或狀態中的數據=不活動
Talbes
CREATE TABLE `comments`(
id INT NOT NULL,
comment TEXT,
status enum('active','inactive','deleted'), //Should this be added?
PRIMARY KEY(id)
);
CREATE TABLE `files`(
id INT NOT NULL
file_path VARCHAR(100),
status enum('active','inactive','deleted'), //Should this be added?
PRIMARY KEY (id)
);
CREATE TABLE `comments_files_xref`(
comment_id INT NOT NULL,
file_id INT NOT NULL,
PRIMARY KEY (comment_id,file_id)
);
我應該設置狀態欄爲無效,把我的select語句的WHERE table.status = '主動'?我應該刪除行嗎?哪種性能最好?我總是可以運行一個cron來「清理」status =「deleted」行。
這實際上是一個相當複雜的問題。由於結果會不同,您使用的是哪種MySQL引擎? MyISAM,InnoDB,...? – MartinodF 2010-11-09 22:33:25
我應該使用哪一個?由於外鍵約束,我喜歡InnoDB的想法,但我找不到任何描述如何調整InnoDB的好資源。 MyISAM看起來好簡單多了,或許我只是一個小菜一碟 – John 2010-11-09 23:59:40
感謝您的修改!增加了一個段落。 – PerformanceDBA 2010-11-10 14:56:52