我的个人意见是别把 db 默认的 id 和你的 object id 混淆。你的 id 如果是 unique 的完全也可以做 primary key
> 在 2012年3月1日 下午11:31,Xiaofeng Yang <n.akr....@gmail.com>写道:
>
>> 自己手动处理下就行了
>> 在 2012-3-1 中午12:18,"刘滔" <mat.l...@gmail.com>写道:
>>
>>
>> >
>> > 最近在用Common
>> > Lisp操作关系型数据库中的表,表中的列比代码中用defclass定义的类的slot多了一个Id,并且是设置了auto_increment属性的,这样的话,每次往数据库中写入数据时,都会出现一个不一致的情况,就是使用make-instance生成的类的实例中的Id这个slot是空的,没有绑定的;而数据库中的表中对应的那一行的Id列是有值的,并且这个值似乎不可预测。有没有什么办法能填补这之间的不一致情况呢?
>> >
>> > 说说我的一个想法,之前用过Elephant,在Cliki上它被归入CLOS
>> > OO的数据类别中。我比较喜欢的一个地方是它提供了defpclass这个宏来定义可持久化的泪,并且自动拥有索引。如果我把实例中的索引作为上面的表的Id列的替代品的话,就可以填补上面的问题中的空隙了。可是Elephant在SLIME上的表现怪怪的,没有在minibuffer中出现完整的函数提示,因此不是太愿意使用(同时因为并不是太懂……),对于关系型数据库,有没有什么好的办法呢?
>> >
>> > --
>> > Liutos Love Linux LaTeX Lisp Ling
>> >
>> > 我的博客,纪念我死去的GAE
>> >
>> > --
>> > Lisp-cn(Lisp中文用户组)
>> > CLUG http://lisp.org.cn
>>
>> --
>> Lisp-cn(Lisp中文用户组)
>> CLUG http://lisp.org.cn
>
>
>
>
> --
> Liutos Love Linux LaTeX Lisp Ling
>
> 我的博客,纪念我死去的GAE
>
> --
> Lisp-cn(Lisp中文用户组)
> CLUG http://lisp.org.cn
--
黄 澗石 (Jianshi Huang)
http://huangjs.net/
Yes, 这个 oid 是 lisp-side 管理的(类似 gensym),不是数据库自动自动生成的
不要怕麻烦,数据库操作就是这样麻烦
mysql id 是 table level uniqueness.
very different thing. 选择更适合自己应用的。 autoincre id 可能性能上更好,因为保证是连续的。
2012/3/2 刘滔 <mat.l...@gmail.com>:
> 汗啊,还真的是这样做的啊……没有接触过Hibernate,不过居然被我想对了,哈哈,小小自豪一下。不过觉得像涧石兄所说的那样做也不错,就是下一次在启动程序时要还原那个用来计数的变量而已。
--