在CGI程序中能不能动态地创建数据库,并对其进行修改添加和删除等操作?(100分)

  • 主题发起人 主题发起人 isabel
  • 开始时间 开始时间
I

isabel

Unregistered / Unconfirmed
GUEST, unregistred user!
在我的CGI程序中需要动态地建立一个数据库,用于存储用户的临时信息。
由于每个用户都需要有一个相应的数据库,所以只能在程序中动态地创建。
请问该怎么做?
另外还有一个问题。
请问在CGI程序中能不能定义自己的类?该如何做?
麻烦说的清楚一些,因为我是新手还有很多东西不懂。
还望各位大侠不吝赐教。
 
可是可以的。
不过为什么一个用户要一个数据库?
所有用户用一个数据库,其中加一个字段区分不同用户不行吗
 
那万一多个进程同时对一个数据库进行修改可怎么行?

另外,动态的创建了数据库后,又如何获知用户已经离线
并将为其建立的数据库删除?
 
>>一个用户要一个数据库?
>>动态的创建了数据库后,用户离线将其建立的数据库删除?

这样不把数据库累死才怪?
 
我要做一个网上考试系统,需要建立一个answer表,存储用户答案,试题号,试题类

型,试题的正确答案和用户的正误。
我想大概需要动态地create一个table。
你有什么更好的建议吗?不妨说来听听。
 
建立一个用户表,一个answer表,用户注册信息存入用户表,每次答题前先登录.登录
后,考试信息存入answer表.
answer表可以定期整理,或由用户选择删除.
类似大富翁.
 
那还是需要一个answer表。由于题目是从题库中随机抽取,所以在
用户下线时一定要清除记录,不然下次作题时就会引起混乱了。
我的想法是每次作题是动态地create一个answertable,存储本次
作题的信息。在用户查看答案的时候显示用户答案和正确答案。在用户下线
是就drop掉该表。

可是在什么地方删除该表合适呢?

 
用临时表试试.表名前加#,临时表系统会自动删除.
 
最好不要一个用户一个表,
最好所有用户一个表,用一个字段区分
要不然很容易给人攻击的,要是有很多人同时访问,那就会出现很多表,
一个数据库里面的表的数量是有限制的,而且表多了性能糟糕。
可能很快就要崩溃了

而一个表里面行数多一点却没啥关系
 
SQL SERVER 最多支持20亿个表
>>表多了性能糟糕
>>行数多一点却没啥关系
表多和行多对性能的影响很难说.
用一个表一样会被攻击.
关键是管理好你的数据库.
 
我用的是sql server 7.0
在程序中建立临时表,是这样写的
tablename:='useranswer';
query1.close;
query1.sql.clear;
query1.sql.add('CREATE TABLE'+' '+'#'+tablename+' '+'(questionno int,useranswer varchar(8),... )');
query1.execsql;
可是在我的数据库中并没有新的#useranswer表。或者系统将它放到了其他的什么地方?

如果所有的用户共用一张表,我又担心多个用户同时修改表的内容时会不会有问题。
 
临时表只在当前会话期内存在,会话结束就自动删除了.
临时表还有全局临时表和局部临时表之分,全局临时表名称前加##
临时表我也没用过,千万不要盯住我.
CJ?
g622?
 
我还是决定所有用户用一个表。用userid区分。
thank you evry much.


 
后退
顶部