G guan1573 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-12 #1 我有一个表示文件分类的表,其中有一个字段是分类代号,此字段只是为了 保证分类的唯一,请问此字段应该怎样设计?
L liudz Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-12 #5 字符串 自己来控制它的唯一 如 yyyymmdd+流水号
J jopi Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-12 #6 建索引,如用Access,可指定不允许重复,如用MS SQL,可创建Unique索引
G guan1573 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-16 #7 不行,我得这个字段非常重要,要以此字段作为名称生产一个文件夹或者文件, 而且将来可能有10万条记录,就是大约有10万个文件要依靠此字段来保存! 一定要保证此字段的唯一性,且一定要保证维护性好.
G guan1573 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-16 #8 索引是一定要建立,我只是想知道此字段该怎样编? liudz大约领会了我得意思
Z ZergWang Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-16 #9 我认为是VARCHAR(12)的字段,当然有几种方法,看看具体有什么用了: 1.最好是可自已控制的,不然以后会很麻烦,方法是MAX + 1。 2.最好这可代表在系统表中的行数,而且这样定义对于以后要取数来说比较容易, 因为数据大了的话,查找和打开数据控件时就会很慢,所以这样定义就比较快点。 每次在数据库打开冒就取一定的数出来,比如1000条。这样会快很多。 3.象liudz说的也行,不过,如果还有一个对应DATE字段的话,我觉得就没必要了。 因为可以用DATE加此字段来查记录。此字段功能越少越好。越具体越好。 我这算是抛砖引玉吧,希望能有更好的方法。。。。。
我认为是VARCHAR(12)的字段,当然有几种方法,看看具体有什么用了: 1.最好是可自已控制的,不然以后会很麻烦,方法是MAX + 1。 2.最好这可代表在系统表中的行数,而且这样定义对于以后要取数来说比较容易, 因为数据大了的话,查找和打开数据控件时就会很慢,所以这样定义就比较快点。 每次在数据库打开冒就取一定的数出来,比如1000条。这样会快很多。 3.象liudz说的也行,不过,如果还有一个对应DATE字段的话,我觉得就没必要了。 因为可以用DATE加此字段来查记录。此字段功能越少越好。越具体越好。 我这算是抛砖引玉吧,希望能有更好的方法。。。。。
A astart Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-16 #10 我认为加上一个数字型字段就可以了,很多作论坛的数据库都是用一个数字字段来 索引的。
G guan1573 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-16 #11 字段值肯定是用程序来控制的,也不可能用数据库里的递增字段来控制。 to ZergWang 你说的max+1什么意思? 2.最好这可代表在系统表中的行数,而且这样定义对于以后要取数来说比较容易, 什么意思? to ZergWang,astart, 只用流水号来作为字段值, 比如从100开始,那么我的文件就是以100,101,102,103,104........等文件名来保存 ,我总觉着有后患,我以前没有用过这种方式,这样可以吗? 我觉着用yyyymmdd+流水号,到也可以考虑! 谢谢大家的帮忙~
字段值肯定是用程序来控制的,也不可能用数据库里的递增字段来控制。 to ZergWang 你说的max+1什么意思? 2.最好这可代表在系统表中的行数,而且这样定义对于以后要取数来说比较容易, 什么意思? to ZergWang,astart, 只用流水号来作为字段值, 比如从100开始,那么我的文件就是以100,101,102,103,104........等文件名来保存 ,我总觉着有后患,我以前没有用过这种方式,这样可以吗? 我觉着用yyyymmdd+流水号,到也可以考虑! 谢谢大家的帮忙~
L l213 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-16 #12 可以用自动增长的域来解决。 也可以把字段设成18位。yyyymmddhhsszzz+流水号。流水号用三位,这样可以保证每毫秒有一千条记录,足够用了。
Z ZergWang Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-16 #14 to guan1573: 1.MAX + 1 就是当前最大行数加1. 2.你觉得有后患,说得没错。如果加了这又加了那的,以后文件名改了。就要改ID, 太多后果了,我说不清楚会有什么,但我曾经这样做过,确实遇到过很多麻烦。所以才会建议ID只用行号来表示。 3.会在很多时候,要取一些特定的记录出来,比如53000-54000行记录,这时你会怎么去取? 4.一般情况下可以用自动ID。 不说了,其实什么方法都可以,只看自己喜欢了。 程序里,最大的乐趣就是能发挥自己的个性。 我说的东西你可能不理解,如果你不喜欢,你就照你喜欢的去做吧。 做自己喜欢的程序.....
to guan1573: 1.MAX + 1 就是当前最大行数加1. 2.你觉得有后患,说得没错。如果加了这又加了那的,以后文件名改了。就要改ID, 太多后果了,我说不清楚会有什么,但我曾经这样做过,确实遇到过很多麻烦。所以才会建议ID只用行号来表示。 3.会在很多时候,要取一些特定的记录出来,比如53000-54000行记录,这时你会怎么去取? 4.一般情况下可以用自动ID。 不说了,其实什么方法都可以,只看自己喜欢了。 程序里,最大的乐趣就是能发挥自己的个性。 我说的东西你可能不理解,如果你不喜欢,你就照你喜欢的去做吧。 做自己喜欢的程序.....
S sentiment Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-16 #15 在数据库中创建一个SEQUENCE,比如SQ_TEST(MIN=1,MAX=9999999999), 把你的这个字段设置为数字型, 然后在每次添加记录的时候都SELECT SR.CURRVAL FROM DUAL 得到此SEQUENCE的数字, 我包你不会重复。
在数据库中创建一个SEQUENCE,比如SQ_TEST(MIN=1,MAX=9999999999), 把你的这个字段设置为数字型, 然后在每次添加记录的时候都SELECT SR.CURRVAL FROM DUAL 得到此SEQUENCE的数字, 我包你不会重复。
G guan1573 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-17 #16 to ZergWang, 我喜欢的就是便于维护,产生的后患越少越好!谢谢你的帮忙! to 大家 我再想问一下:我还有一个担心的事! 我做了两个表,一个表是生成代号的表1,一个是记录实际数据的表2,表1生成的代号 在表2中做主键,这样表2和表1只有这样一个字段相关连,是不是会有什么祸患呢? 我担心! 谢谢各位
to ZergWang, 我喜欢的就是便于维护,产生的后患越少越好!谢谢你的帮忙! to 大家 我再想问一下:我还有一个担心的事! 我做了两个表,一个表是生成代号的表1,一个是记录实际数据的表2,表1生成的代号 在表2中做主键,这样表2和表1只有这样一个字段相关连,是不是会有什么祸患呢? 我担心! 谢谢各位
Q qdgm988 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-18 #17 1。要建立索引,无重复,保证唯一。 2。可形成逻辑主键(char),即有标志意义的字母+id号。
Z ZergWang Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-18 #18 to guan1573: 我认为基本上没什么后患,这样做有一个好处,就是一些被修改或删除了的记录号还能被使用。 只是做起来麻烦一点点,而且又占空间这样子。 如果不是太重要的话,其实不用这么麻烦去做,曾经你的想法我也做过, 不过,觉得太多情况下是没有必要的,只在特殊情况下有用,比如为了表示发票号之类的 很重要的号码。(因为发票号做废的要能重用)。 因为你没说太清楚你究竟想做什么,所以只能你自己决定了。 这只是我个人的意见。
to guan1573: 我认为基本上没什么后患,这样做有一个好处,就是一些被修改或删除了的记录号还能被使用。 只是做起来麻烦一点点,而且又占空间这样子。 如果不是太重要的话,其实不用这么麻烦去做,曾经你的想法我也做过, 不过,觉得太多情况下是没有必要的,只在特殊情况下有用,比如为了表示发票号之类的 很重要的号码。(因为发票号做废的要能重用)。 因为你没说太清楚你究竟想做什么,所以只能你自己决定了。 这只是我个人的意见。
G guan1573 Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-20 #19 to qdgm988大虾 谢谢你的帮忙!:) to ZergWang, 你说的不错,如果处理好了,不会有什么问题, 对我来说,当删除主表的记录时,生成代号的表的记录会产生多余的记录, 而这些多余的代号我不需要再用它(不象发票等),我只需要在我删除主表的 记录时,同时删除代号表的记录,以防止有那么多多余的记录。 不知道我的表达你是否清楚。 也不知道我得想法合不合理? 谢谢!
to qdgm988大虾 谢谢你的帮忙!:) to ZergWang, 你说的不错,如果处理好了,不会有什么问题, 对我来说,当删除主表的记录时,生成代号的表的记录会产生多余的记录, 而这些多余的代号我不需要再用它(不象发票等),我只需要在我删除主表的 记录时,同时删除代号表的记录,以防止有那么多多余的记录。 不知道我的表达你是否清楚。 也不知道我得想法合不合理? 谢谢!
Z ZergWang Unregistered / Unconfirmed GUEST, unregistred user! 2002-10-09 #20 好久没来大富翁了,不知道兄弟的问题解决了没有? 兄弟说的应该没有什么问题。去做就是了。没关系的。