2013-03-02 123 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