免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5289 | 回复: 12
打印 上一主题 下一主题

谈谈我的对PGSQL的应用好吗??? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-03-30 15:11 |只看该作者 |倒序浏览
我现在,用pgsql 做项目。。
目前是
Form ==>; jsp ==>; javaBean ==>; jdbc(pgsql)  ==>;
如果是select 用view来做。
如果是删除记录并涉及外键。就用触发器去删除外键的表。。
如果是大量查找分析就用select func() 过程来做。然后反回结果集。
如果是一些特定的操作也用过程例:adduser(varchar,varchar),deluser(integer id).......ext
目前还没用到游标。。

总之用最少的连接做大量的处理。尽量在数中完成操作。能用数据库的不用程序做。。。。。。。

大家有什么看法。。你们是怎么做的。。请多指教。。。。。

目前我的pgsql脚本以达到500行了。包括表,view,触发器,过程。。。ext
维护起来真是有点力不从心:)

论坛徽章:
0
2 [报告]
发表于 2003-03-30 15:13 |只看该作者

谈谈我的对PGSQL的应用好吗???

补充

如果查看用户的过程

\df
列出系统所有过程和函数。。

我要列出我自己的过程?????

论坛徽章:
0
3 [报告]
发表于 2003-03-30 19:00 |只看该作者

谈谈我的对PGSQL的应用好吗???

我们现在的项目,数据库就用来作存储,不涉及复杂逻辑和计算操作,这些都在程序里面实现,维护移植比较方便,当然还是windows上面的程序,不过可以参考一下,我们不用trigger,view倒是用了,stored procedure能简单就简单

论坛徽章:
0
4 [报告]
发表于 2003-03-30 19:46 |只看该作者

谈谈我的对PGSQL的应用好吗???

我看到很多人在WINDOWS下用PostgreSQL为什么。。
我是在LINUX or FreeBSD上运行。。。

个人认为在数据库里处理复杂罗技。比在程序中处理好。且维护方便。。

论坛徽章:
0
5 [报告]
发表于 2003-03-30 21:43 |只看该作者

谈谈我的对PGSQL的应用好吗???

our project is based on windows, database is sql server 2000. To meet the customer's need, they need windows

论坛徽章:
0
6 [报告]
发表于 2003-03-31 10:00 |只看该作者

谈谈我的对PGSQL的应用好吗???

如果是删除记录并涉及外键。就用触发器去删除外键的表。。

postgres的外键本身就是考触发器来做的,见一个外键后会自动见一个触发器,当然这个触发器对用户是不可见的!!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2003-03-31 11:01 |只看该作者

谈谈我的对PGSQL的应用好吗???

[quote]原帖由 "joint"]我们现在的项目,数据库就用来作存储,不涉及复杂逻辑和计算操作,这些都在程序里面实现,维护移植比较方便,当然还是windows上面的程序,不过可以参考一下,我们不用trigger,view倒是用了,stored procedure能简单就简单[/quote 发表:


我也比较倾向于这种想法,这样要灵活很多。

论坛徽章:
0
8 [报告]
发表于 2003-03-31 12:40 |只看该作者

谈谈我的对PGSQL的应用好吗???

postgres的外键本身就是考触发器来做的,见一个外键后会自动见一个触发器,当然这个触发器对用户是不可见的!!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

不是的外键参考是用系统的触发器,也是系统自动建的。。
tabe
int id 主键

tabe1
uid 外键参考 table(id)
如何你删除table中的记录加提示,你要先删除tabe1 记录。。

我做这样操作时是用触发器过程来做的。。
CREATE OR REPLACE FUNCTION siteuser_id_del_func () RETURNS opaque AS '
--  DECLARE
        BEGIN
            Delete from company where id = OLD.id;   
              Delete from link where uid = OLD.id;
              Delete from style where uid = OLD.id;
              Delete from product_sort where uid = OLD.id;
            Delete from news where uid = OLD.id;
            Delete from count where uid = OLD.id;
            Delete from guestbook where uid = OLD.id;
            Delete from indent where uid = OLD.id;
    RETURN OLD;
        END;
' LANGUAGE 'plpgsql';

DROP TRIGGER siteuser_id_del_tri on siteuser;
CREATE TRIGGER siteuser_id_del_tri
       BEFORE Delete
       --AFTER Delete
       ON siteuser FOR EACH ROW
       EXECUTE PROCEDURE siteuser_id_del_func ();


注:还有系统自动建的角发器,是可见。

site=>; \d siteuser;
                                      Table "siteuser"
   Column    |           Type           |                     Modifiers
-------------+--------------------------+---------------------------------------------------
id          | integer                  | not null default nextval('siteuser_id_seq'::text)
username    | character varying(20)    | not null default '0'
password    | character varying(50)    | not null default '0'
realname    | character varying(10)    | not null default '0'
email       | character varying(50)    | not null default '0'
create_date | timestamp with time zone | default now()
modify_date | timestamp with time zone | default now()
Indexes: siteuser_id_index
Primary key: siteuser_pkey
Unique keys: siteuser_id_key
Triggers: siteuser_id_del_tri,
          RI_ConstraintTrigger_18339,
          RI_ConstraintTrigger_18341,
          RI_ConstraintTrigger_18355,
          RI_ConstraintTrigger_18357,
          RI_ConstraintTrigger_18393,
          RI_ConstraintTrigger_18395,
          RI_ConstraintTrigger_18411,
          RI_ConstraintTrigger_18413,
          RI_ConstraintTrigger_18442,
          RI_ConstraintTrigger_18444,
          RI_ConstraintTrigger_18484,
          RI_ConstraintTrigger_18486,
          RI_ConstraintTrigger_18581,
          RI_ConstraintTrigger_18583,
          RI_ConstraintTrigger_19102,
          RI_ConstraintTrigger_19104,
          RI_ConstraintTrigger_19141,
          RI_ConstraintTrigger_19143,
          RI_ConstraintTrigger_19301,
          RI_ConstraintTrigger_19303
siteuser_id_del_tri这个是我自己建的。。
其它的确良RI_ConstraintTrigger_xxxx是系统自动建的。。所以我说是可以看到的

论坛徽章:
0
9 [报告]
发表于 2003-03-31 12:42 |只看该作者

谈谈我的对PGSQL的应用好吗???

还有那位高手用过游标。。。
谈谈心得。。。。

论坛徽章:
0
10 [报告]
发表于 2003-03-31 12:51 |只看该作者

谈谈我的对PGSQL的应用好吗???

PGSQL那种类似ORACLE报表功能吗(我说的不太准确)
就是在psql运行SQL就可输出这样的
                                              title
                                                                             日期:xxxxxx
     \      性名 |  性别 | 出生年月日 |xxxx |xxxx|xxxx|xxxxxx
市场部
行政部
技术部

PGSQL能做到吗?????
其实就像是加了select table or view的一个外壳一样。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP