2013-03-02 177 views
1

我有一個在MySQL中實現堆棧的抽象概念。嘗試了很多谷歌的工作,但無法達成任何合理的結論。在MySQL中實現堆棧

堆棧必須是堆棧頂部指向特定表的表的集合。我們可能在我們的數據庫中有各種這樣的堆棧。例如,如果表格中的字段已滿,堆棧長度可能會增加。同樣,堆棧長度可能會以相反的方式減少!

請給我一個實施的想法!第一個地方真的有可能嗎?希望我清楚我的問題。

+0

你想堆棧存儲哪種類型的對象? – 2013-03-02 18:53:35

+0

爲什麼你會有「指向特定表格」的堆棧?支持堆棧的數據庫中的數據結構每個堆棧元素都有一行。 – 2013-03-02 18:54:06

+2

我會走開並閱讀關於RDMS的概念。你的想法應該保持抽象。 – 2013-03-02 19:11:30

回答

1

我的想法。

帶有自動遞增ID和blob列的單表,用於存儲序列化對象。

推入棧將插入新的最高ID。

從堆棧中彈出將獲得具有最高ID和刪除的行。

這當然是一個簡單的方法。您必須尊重堆棧推送的來源,以便您只能獲得允許的堆棧對象。但這取決於用例。

+0

我剛剛寫下類似的答案。堆棧的大多數用途不需要在程序運行之間持續存在,也不需要在程序實例之間共享,這使得內存成爲實現堆棧的更好地方。 – 2013-03-02 19:01:25

+1

可能還會添加一個threadId字段,以便多個線程可以使用同一個表。 parentId字段可能有助於提高速度(退出堆棧)。 – 2013-03-02 19:05:06

+0

這是正確的。但這是一個不同的問題。 – HerrSerker 2013-03-02 19:05:15