我採取的是類似於典型的數據庫表中的類:如何實現數據庫樣式表在Python
- 已命名的列和無名行
- 有一個主鍵由我可以引用行
- 支持通過主鍵和列標題進行檢索和分配
- 可以被要求爲任何列添加唯一索引或非唯一索引,從而允許快速檢索具有給定行的行(或行集合)在該列中的值
- 刪除一行很快,實現爲「軟刪除」:該行保持物理狀態,但被標記爲刪除並且不會在任何後續檢索操作中顯示
- 添加列很快
- 行很少添加
- 列被刪除很少
我決定實現類,而不是直接使用包裝周圍源碼。
什麼是一個好的數據結構使用?
就像一個例子,我想到的一種方法是字典。它的鍵是表的主鍵列中的值;其值是以下列方式之一實施的行:
作爲列表。列號映射到列標題中(使用一個方向的列表和另一個方向的地圖)。這裏,檢索操作首先將列標題轉換爲列號,然後在列表中找到相應的元素。
作爲字典。列標題是這本詞典的關鍵。
不能確定兩者的優點/缺點。
我想要寫我自己的代碼的原因是:
- 我需要跟蹤行刪除。也就是說,在任何時候我都希望能夠報告哪些行被刪除以及什麼「原因」(「原因」被傳遞給我的刪除方法)。
- 我需要建立索引期間的一些報告(例如,當一個非唯一索引正在修建,我要檢查一定的條件,如果他們違反報告)
爲什麼要這樣做,而不是使用現有的DBMS? – delnan 2010-11-15 19:57:05
特別是,爲什麼不使用'sqlite'的包裝? – katrielalex 2010-11-15 20:03:36
@delnan @katrielalex:剛剛編輯我的問題,給出幾個原因。也許有辦法用sqlite包裝來做到這一點? – max 2010-11-15 20:05:50