我有一个在MySQL中实现堆栈的抽象概念。尝试了很多谷歌的工作,但无法达成任何合理的结论。在MySQL中实现堆栈
堆栈必须是堆栈顶部指向特定表的表的集合。我们可能在我们的数据库中有各种这样的堆栈。例如,如果表格中的字段已满,堆栈长度可能会增加。同样,堆栈长度可能会以相反的方式减少!
请给我一个实施的想法!第一个地方真的有可能吗?希望我清楚我的问题。
我有一个在MySQL中实现堆栈的抽象概念。尝试了很多谷歌的工作,但无法达成任何合理的结论。在MySQL中实现堆栈
堆栈必须是堆栈顶部指向特定表的表的集合。我们可能在我们的数据库中有各种这样的堆栈。例如,如果表格中的字段已满,堆栈长度可能会增加。同样,堆栈长度可能会以相反的方式减少!
请给我一个实施的想法!第一个地方真的有可能吗?希望我清楚我的问题。
我的想法。
带有自动递增ID和blob列的单表,用于存储序列化对象。
推入栈将插入新的最高ID。
从堆栈中弹出将获得具有最高ID和删除的行。
这当然是一个简单的方法。您必须尊重堆栈推送的来源,以便您只能获得允许的堆栈对象。但这取决于用例。
我刚刚写下类似的答案。堆栈的大多数用途不需要在程序运行之间持续存在,也不需要在程序实例之间共享,这使得内存成为实现堆栈的更好地方。 – 2013-03-02 19:01:25
可能还会添加一个threadId字段,以便多个线程可以使用同一个表。 parentId字段可能有助于提高速度(退出堆栈)。 – 2013-03-02 19:05:06
这是正确的。但这是一个不同的问题。 – HerrSerker 2013-03-02 19:05:15
你想堆栈存储哪种类型的对象? – 2013-03-02 18:53:35
为什么你会有“指向特定表格”的堆栈?支持堆栈的数据库中的数据结构每个堆栈元素都有一行。 – 2013-03-02 18:54:06
我会走开并阅读关于RDMS的概念。你的想法应该保持抽象。 – 2013-03-02 19:11:30