[英]Redesigning a self-referencing mysql table
我繼承了一個遺留應用程序,該應用程序利用自引用表來促進層次結構。 這將導致遞歸方法調用,從而產生“難聞的氣味”。
parent_id列引用同一表的主鍵,此處大約有2500萬條記錄:
+-------------+---------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------+------+-----+---------+----------------+
| phase_id | int(10) | NO | PRI | NULL | auto_increment |
| plat_id | int(10) | YES | MUL | NULL | |
| name | text | YES | | NULL | |
| parent_id | int(10) | YES | MUL | NULL | |
| plan_id | int(10) | YES | MUL | NULL | |
+-------------+---------+------+-----+---------+----------------+
mysql> show table status like 'ref'\G
*************************** 1. row ***************************
Name: phase
Engine: MyISAM
Version: 10
Row_format: Dynamic
Rows: 25223658
Avg_row_length: 20
Data_length: 509450960
Max_data_length: 281474976710655
Index_length: 1026267136
Data_free: 0
Auto_increment: 25238013
我對這種結構有一些疑問:
任何指針將不勝感激ns
我們最終廢棄了現有的自引用表。 並創建了一個新表格來容納更簡單的模型。
感謝Sebas提供上述鏈接 。 那里有很多好處!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.