
implements MarkdownDeep helper from NuGet * uninstdbws.sql: * jquery-2.1.3.js: * jquery-2.1.4.js: * date.js: * mdd_help.htm: * scorediv-latest.js: * jquery-2.1.4.min.js: * jquery-2.1.3.min.js: * plural.js: * number.js: * jquery-2.1.4.min.map: * message.js: * jquery-2.1.3.min.map: * jquery-2.1.3-vsdoc.js: * currency.js: * jquery-2.1.4-vsdoc.js: * globalize.js: * MarkdownDeepLib.min.js: * relative-time.js: * globalize.cultures.js: * globalize.culture.kn.js: * globalize.culture.or.js: * globalize.culture.pa.js: * globalize.culture.pl.js: * globalize.culture.fo.js: * globalize.culture.ps.js: * globalize.culture.fi.js: * globalize.culture.fa.js: * globalize.culture.fr.js: * globalize.culture.nn.js: * globalize.culture.no.js: * globalize.culture.gl.js: * globalize.culture.gd.js: * globalize.culture.ga.js: * globalize.culture.oc.js: * globalize.culture.fy.js: * globalize.culture.eu.js: * globalize.culture.se.js: * globalize.culture.si.js: * globalize.culture.sk.js: * globalize.culture.sl.js: * globalize.culture.sq.js: * globalize.culture.sr.js: * globalize.culture.sv.js: * globalize.culture.sa.js: * globalize.culture.pt.js: * globalize.culture.et.js: * globalize.culture.es.js: * globalize.culture.rm.js: * globalize.culture.ro.js: * globalize.culture.ru.js: * globalize.culture.rw.js: * globalize.culture.gu.js: * globalize.culture.kk.js: * globalize.culture.ka.js: * globalize.culture.mk.js: * globalize.culture.ja.js: * globalize.culture.iu.js: * globalize.culture.ml.js: * globalize.culture.mn.js: * globalize.culture.mi.js: * globalize.culture.ky.js: * globalize.culture.lo.js: * globalize.culture.ko.js: * globalize.culture.lt.js: * globalize.culture.lv.js: * globalize.culture.km.js: * globalize.culture.kl.js: * globalize.culture.it.js: * globalize.culture.nb.js: * globalize.culture.hr.js: * globalize.culture.ne.js: * globalize.culture.hi.js: * globalize.culture.he.js: * globalize.culture.ha.js: * globalize.culture.nl.js: * globalize.culture.hu.js: * globalize.culture.mr.js: * globalize.culture.is.js: * globalize.culture.ii.js: * globalize.culture.ig.js: * globalize.culture.ms.js: * globalize.culture.id.js: * globalize.culture.hy.js: * globalize.culture.mt.js: * globalize.culture.sw.js: * globalize.culture.bs.js: * globalize.culture.tt.js: * globalize.culture.lb.js: * globalize.culture.ug.js: * globalize.culture.br.js: * globalize.culture.bo.js: * globalize.culture.uk.js: * globalize.culture.ca.js: * globalize.culture.tk.js: * globalize.culture.da.js: * globalize.culture.cy.js: * globalize.culture.tn.js: * globalize.culture.cs.js: * globalize.culture.co.js: * globalize.culture.tr.js: * globalize.culture.bn.js: * globalize.culture.as.js: * globalize.culture.yo.js: * globalize.culture.ar.js: * globalize.culture.zh.js: * globalize.culture.zu.js: * globalize.culture.am.js: * globalize.culture.af.js: * globalize.culture.xh.js: * globalize.culture.ur.js: * globalize.culture.bg.js: * globalize.culture.uz.js: * globalize.culture.be.js: * globalize.culture.ba.js: * globalize.culture.vi.js: * globalize.culture.az.js: * globalize.culture.wo.js: * globalize.culture.dv.js: * globalize.culture.te.js: * globalize.culture.de.js: * globalize.culture.tg.js: * globalize.culture.ta.js: * globalize.culture.el.js: * globalize.culture.th.js: * globalize.culture.arn.js: * globalize.culture.gsw.js: * globalize.culture.nso.js: * globalize.culture.sah.js: * globalize.culture.syr.js: * globalize.culture.tzm.js: * globalize.culture.kok.js: * globalize.culture.dsb.js: * globalize.culture.moh.js: * globalize.culture.sms.js: * globalize.culture.smn.js: * globalize.culture.smj.js: * globalize.culture.sma.js: * globalize.culture.hsb.js: * globalize.culture.quz.js: * globalize.culture.fil.js: * globalize.culture.qut.js: * globalize.culture.prs.js: * globalize.culture.mn-MN.js: * globalize.culture.rm-CH.js: * globalize.culture.ta-IN.js: * globalize.culture.ml-IN.js: * globalize.culture.zh-CN.js: * globalize.culture.zh-HK.js: * globalize.culture.tn-ZA.js: * globalize.culture.ms-BN.js: * globalize.culture.ro-RO.js: * globalize.culture.sq-AL.js: * globalize.culture.mr-IN.js: * globalize.culture.yo-NG.js: * globalize.culture.pt-PT.js: * globalize.culture.sa-IN.js: * globalize.culture.zh-MO.js: * globalize.culture.am-ET.js: * globalize.culture.lt-LT.js: * globalize.culture.tk-TM.js: * globalize.culture.sw-KE.js: * globalize.culture.af-ZA.js: * globalize.culture.lo-LA.js: * globalize.culture.lv-LV.js: * globalize.culture.mk-MK.js: * globalize.culture.zh-SG.js: * globalize.culture.zh-TW.js: * globalize.culture.sv-FI.js: * globalize.culture.mi-NZ.js: * globalize.culture.zu-ZA.js: * globalize.culture.sv-SE.js: * globalize.culture.xh-ZA.js: * globalize.culture.uk-UA.js: * globalize.culture.se-SE.js: * globalize.culture.nn-NO.js: * globalize.culture.si-LK.js: * globalize.culture.nl-NL.js: * globalize.culture.ur-PK.js: * globalize.culture.pl-PL.js: * globalize.culture.or-IN.js: * globalize.culture.tt-RU.js: * globalize.culture.pa-IN.js: * globalize.culture.ug-CN.js: * globalize.culture.rw-RW.js: * globalize.culture.se-FI.js: * globalize.culture.se-NO.js: * globalize.culture.nl-BE.js: * globalize.culture.ru-RU.js: * globalize.culture.mt-MT.js: * globalize.culture.th-TH.js: * globalize.culture.wo-SN.js: * globalize.culture.pt-BR.js: * globalize.culture.ms-MY.js: * globalize.culture.vi-VN.js: * globalize.culture.te-IN.js: * globalize.culture.sk-SK.js: * globalize.culture.ne-NP.js: * globalize.culture.tr-TR.js: * globalize.culture.sl-SI.js: * globalize.culture.ps-AF.js: * globalize.culture.nb-NO.js: * globalize.culture.oc-FR.js: * globalize.culture.en-JM.js: * globalize.culture.en-MY.js: * globalize.culture.en-NZ.js: * globalize.culture.en-PH.js: * globalize.culture.en-SG.js: * globalize.culture.en-TT.js: * globalize.culture.en-US.js: * globalize.culture.en-IN.js: * globalize.culture.dv-MV.js: * globalize.culture.el-GR.js: * globalize.culture.en-AU.js: * globalize.culture.en-BZ.js: * globalize.culture.en-CA.js: * globalize.culture.en-GB.js: * globalize.culture.en-IE.js: * globalize.culture.en-ZA.js: * globalize.culture.es-ES.js: * globalize.culture.es-GT.js: * globalize.culture.es-HN.js: * globalize.culture.es-MX.js: * globalize.culture.es-NI.js: * globalize.culture.es-PA.js: * globalize.culture.es-PE.js: * globalize.culture.es-EC.js: * globalize.culture.en-ZW.js: * globalize.culture.es-AR.js: * globalize.culture.es-BO.js: * globalize.culture.es-CL.js: * globalize.culture.es-CO.js: * globalize.culture.es-CR.js: * globalize.culture.es-DO.js: * globalize.culture.de-LU.js: * globalize.culture.ar-OM.js: * globalize.culture.ar-QA.js: * globalize.culture.ar-SA.js: * globalize.culture.ar-SY.js: * globalize.culture.ar-TN.js: * globalize.culture.ar-YE.js: * globalize.culture.as-IN.js: * globalize.culture.ar-MA.js: * globalize.culture.ar-DZ.js: * globalize.culture.ar-EG.js: * globalize.culture.ar-IQ.js: * globalize.culture.ar-JO.js: * globalize.culture.ar-KW.js: * globalize.culture.ar-LB.js: * globalize.culture.ar-LY.js: * globalize.culture.ba-RU.js: * globalize.culture.cs-CZ.js: * globalize.culture.cy-GB.js: * globalize.culture.da-DK.js: * globalize.culture.de-AT.js: * globalize.culture.de-CH.js: * globalize.culture.de-DE.js: * globalize.culture.de-LI.js: * globalize.culture.co-FR.js: * globalize.culture.be-BY.js: * globalize.culture.bg-BG.js: * globalize.culture.bn-BD.js: * globalize.culture.bn-IN.js: * globalize.culture.bo-CN.js: * globalize.culture.br-FR.js: * globalize.culture.ca-ES.js: * globalize.culture.es-PR.js: * globalize.culture.hi-IN.js: * globalize.culture.hr-BA.js: * globalize.culture.hr-HR.js: * globalize.culture.hu-HU.js: * globalize.culture.hy-AM.js: * globalize.culture.id-ID.js: * globalize.culture.he-IL.js: * globalize.culture.fy-NL.js: * globalize.culture.ga-IE.js: * globalize.culture.gd-GB.js: * globalize.culture.gl-ES.js: * globalize.culture.gu-IN.js: * globalize.culture.ka-GE.js: * globalize.culture.ig-NG.js: * globalize.culture.km-KH.js: * globalize.culture.kn-IN.js: * globalize.culture.ar-BH.js: * globalize.culture.ko-KR.js: * globalize.culture.ky-KG.js: * globalize.culture.lb-LU.js: * globalize.culture.kl-GL.js: * globalize.culture.ii-CN.js: * globalize.culture.is-IS.js: * globalize.culture.it-CH.js: * globalize.culture.it-IT.js: * globalize.culture.ja-JP.js: * globalize.culture.ar-AE.js: * globalize.culture.kk-KZ.js: * globalize.culture.fr-MC.js: * globalize.culture.fr-LU.js: * globalize.culture.fr-FR.js: * globalize.culture.fa-IR.js: * globalize.culture.fr-CH.js: * globalize.culture.et-EE.js: * globalize.culture.fi-FI.js: * globalize.culture.fo-FO.js: * globalize.culture.fr-BE.js: * globalize.culture.fr-CA.js: * globalize.culture.eu-ES.js: * globalize.culture.es-US.js: * globalize.culture.es-PY.js: * globalize.culture.es-UY.js: * globalize.culture.es-VE.js: * globalize.culture.es-SV.js: * globalize.culture.sma-SE.js: * globalize.culture.hsb-DE.js: * globalize.culture.prs-AF.js: * globalize.culture.sma-NO.js: * globalize.culture.qut-GT.js: * globalize.culture.moh-CA.js: * globalize.culture.zh-CHT.js: * globalize.culture.quz-BO.js: * globalize.culture.fil-PH.js: * globalize.culture.zh-CHS.js: * globalize.culture.smj-NO.js: * globalize.culture.gsw-FR.js: * globalize.culture.nso-ZA.js: * globalize.culture.sms-FI.js: * globalize.culture.quz-PE.js: * globalize.culture.sah-RU.js: * globalize.culture.kok-IN.js: * globalize.culture.syr-SY.js: * globalize.culture.smj-SE.js: * globalize.culture.arn-CL.js: * globalize.culture.dsb-DE.js: * globalize.culture.quz-EC.js: * globalize.culture.smn-FI.js: * globalize.culture.en-029.js: * globalize.culture.uz-Latn.js: * globalize.culture.tg-Cyrl.js: * globalize.culture.iu-Cans.js: * globalize.culture.mn-Mong.js: * globalize.culture.az-Latn.js: * globalize.culture.az-Cyrl.js: * globalize.culture.sr-Cyrl.js: * globalize.culture.mn-Cyrl.js: * globalize.culture.bs-Cyrl.js: * globalize.culture.iu-Latn.js: * globalize.culture.ha-Latn.js: * globalize.culture.sr-Latn.js: * globalize.culture.zh-Hant.js: * globalize.culture.bs-Latn.js: * globalize.culture.uz-Cyrl.js: * globalize.culture.zh-Hans.js: * globalize.culture.tzm-Latn.js: * globalize.culture.iu-Latn-CA.js: * globalize.culture.sr-Latn-RS.js: * globalize.culture.sr-Latn-ME.js: * globalize.culture.sr-Latn-CS.js: * globalize.culture.sr-Latn-BA.js: * globalize.culture.sr-Cyrl-RS.js: * globalize.culture.sr-Cyrl-ME.js: * globalize.culture.sr-Cyrl-CS.js: * globalize.culture.sr-Cyrl-BA.js: * globalize.culture.ha-Latn-NG.js: * globalize.culture.mn-Mong-CN.js: * globalize.culture.az-Cyrl-AZ.js: * globalize.culture.az-Latn-AZ.js: * globalize.culture.uz-Latn-UZ.js: * globalize.culture.uz-Cyrl-UZ.js: * globalize.culture.iu-Cans-CA.js: * globalize.culture.bs-Cyrl-BA.js: * globalize.culture.bs-Latn-BA.js: * globalize.culture.tg-Cyrl-TJ.js: * globalize.culture.tzm-Latn-DZ.js: Package update * cldr.js: * globalize.js: * event.js: * unresolved.js: * supplemental.js: * adds Localisation purpose dependency * mdd_styles.css: * mdd_gripper.png: * mdd_toolbar.png: * mdd_ajax_loader.gif: * mdd_modal_background.png: Adds Markdown editor resources * CalendarController.cs: Refactoring : moved Notification and MessagesWithPayLoad into the Google data model (YavscModel) * BlogsController.cs: * Removes input validation, in order to process some Markdown values. * Makes the "Edit" Method the one that do the inital post (makes the "Post" method obsolete) * App.master: * jQuery version updated to 2.1.4 * style.css: Sets a non null padding to the body of html pages. * Edit.aspx: Passes from BBCodes to Markdown at edition time, adds the Markdown editor. * UserPost.aspx: Now displays Markdown content * Web.config: * Modifies the "Thanks" configuration * Removes useless addembly bindings * * Web.csproj: * packages.config: Package updates * instdbws.sql: Adds a GCM registration id in the user's profile data. * LoginModel.cs: Allows numbers in passords and logins * YavscModel.csproj: GCM refactorisation * Post.aspx: Replaced by Edit.aspx
650 lines
18 KiB
SQL
650 lines
18 KiB
SQL
|
|
-- Table: users
|
|
|
|
-- DROP TABLE users;
|
|
|
|
CREATE TABLE users
|
|
(
|
|
pkid character varying NOT NULL,
|
|
username character varying(255) NOT NULL,
|
|
applicationname character varying(255) NOT NULL,
|
|
email character varying(128) NOT NULL,
|
|
comment character varying(255),
|
|
passw character varying(128) NOT NULL,
|
|
passwordquestion character varying(255),
|
|
passwordanswer character varying(255),
|
|
isapproved boolean,
|
|
lastactivitydate timestamp with time zone,
|
|
lastlogindate timestamp with time zone,
|
|
lastpasswordchangeddate timestamp with time zone,
|
|
creationdate timestamp with time zone,
|
|
islockedout boolean,
|
|
lastlockedoutdate timestamp with time zone,
|
|
failedpasswordattemptcount integer,
|
|
failedpasswordattemptwindowstart timestamp with time zone,
|
|
failedpasswordanswerattemptcount integer,
|
|
failedpasswordanswerattemptwindowstart timestamp with time zone,
|
|
CONSTRAINT users_pkey PRIMARY KEY (pkid),
|
|
CONSTRAINT uniquelogin UNIQUE (applicationname, email),
|
|
CONSTRAINT uniquemail UNIQUE (applicationname, username)
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
-- Table: roles
|
|
|
|
-- DROP TABLE roles;
|
|
|
|
CREATE TABLE roles
|
|
(
|
|
rolename character varying(255) NOT NULL,
|
|
applicationname character varying(255) NOT NULL,
|
|
comment character varying(255) NOT NULL,
|
|
CONSTRAINT roles_pkey PRIMARY KEY (rolename, applicationname)
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
COMMENT ON TABLE roles
|
|
IS 'Web application roles';
|
|
|
|
-- Table: usersroles
|
|
|
|
-- DROP TABLE usersroles;
|
|
|
|
CREATE TABLE usersroles
|
|
(
|
|
applicationname character varying(255) NOT NULL,
|
|
rolename character varying(255) NOT NULL,
|
|
username character varying(255) NOT NULL,
|
|
CONSTRAINT attrroles_pkey PRIMARY KEY (applicationname, rolename, username),
|
|
CONSTRAINT usersroles_fk_role FOREIGN KEY (applicationname, rolename)
|
|
REFERENCES roles (applicationname, rolename) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE,
|
|
CONSTRAINT usersroles_fk_user FOREIGN KEY (applicationname, username)
|
|
REFERENCES users (applicationname, username) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
-- DROP TABLE profiles;
|
|
|
|
CREATE TABLE profiles
|
|
(
|
|
uniqueid bigserial NOT NULL,
|
|
username character varying(255) NOT NULL,
|
|
applicationname character varying(255) NOT NULL,
|
|
isanonymous boolean,
|
|
lastactivitydate timestamp with time zone,
|
|
lastupdateddate timestamp with time zone,
|
|
CONSTRAINT profiles_pkey PRIMARY KEY (uniqueid),
|
|
CONSTRAINT fk_profileusers FOREIGN KEY (username, applicationname)
|
|
REFERENCES users (username, applicationname) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE,
|
|
CONSTRAINT pkprofiles UNIQUE (username, applicationname)
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
-- Table: profiledata
|
|
|
|
-- DROP TABLE profiledata;
|
|
|
|
CREATE TABLE profiledata
|
|
(
|
|
uniqueid integer,
|
|
zipcode character varying(10),
|
|
cityandstate character varying(255),
|
|
blogtitle character varying(255), -- Blog Title
|
|
address character varying(2048), -- Postal address
|
|
country character varying(100),
|
|
website character varying(256),
|
|
blogvisible boolean,
|
|
hasavatar boolean, -- True when user has specified an image for avatar
|
|
name character varying(1024),
|
|
phone character varying(15),
|
|
mobile character varying(15),
|
|
accountnumber character varying(15), -- Numero de compte
|
|
bankedkey integer, -- clé RIB
|
|
bankcode character varying(5), -- Code banque
|
|
wicketcode character varying(5),
|
|
iban character varying(33),
|
|
bic character varying(15),
|
|
gtoken character varying(512),
|
|
grefreshtoken character varying(512), -- Google refresh token
|
|
gtokentype character varying(256), -- Google access token type
|
|
gcalid character varying(255),
|
|
gtokenexpir timestamp with time zone, -- Google access token expiration date
|
|
avatar character varying(512), -- url for an avatar
|
|
gcalapi boolean NOT NULL DEFAULT false, -- true when user authorized to use its Google calendar
|
|
gregid character varying(1024), -- Google Cloud Message registration identifier
|
|
CONSTRAINT fkprofiles2 FOREIGN KEY (uniqueid)
|
|
REFERENCES profiles (uniqueid) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
COMMENT ON COLUMN profiledata.blogtitle IS 'Blog Title';
|
|
COMMENT ON COLUMN profiledata.address IS 'Postal address';
|
|
COMMENT ON COLUMN profiledata.hasavatar IS 'True when user has specified an image for avatar';
|
|
COMMENT ON COLUMN profiledata.accountnumber IS 'Numero de compte';
|
|
COMMENT ON COLUMN profiledata.bankedkey IS 'clé RIB';
|
|
COMMENT ON COLUMN profiledata.bankcode IS 'Code banque';
|
|
COMMENT ON COLUMN profiledata.gtoken IS 'Google authentification token';
|
|
COMMENT ON COLUMN profiledata.gcalid IS 'Google calendar identifier';
|
|
COMMENT ON COLUMN profiledata.gtokentype IS 'Google access token type';
|
|
COMMENT ON COLUMN profiledata.grefreshtoken IS 'Google refresh token';
|
|
COMMENT ON COLUMN profiledata.gtokenexpir IS 'Google access token expiration date';
|
|
COMMENT ON COLUMN profiledata.avatar IS 'url for an avatar';
|
|
COMMENT ON COLUMN profiledata.gregid IS 'Google Cloud Message registration identifier';
|
|
|
|
-- Index: fki_fkprofiles2
|
|
|
|
-- DROP INDEX fki_fkprofiles2;
|
|
|
|
CREATE INDEX fki_fkprofiles2
|
|
ON profiledata
|
|
USING btree
|
|
(uniqueid);
|
|
|
|
-- Table: profiles
|
|
|
|
|
|
-- Table: blog
|
|
|
|
-- DROP TABLE blog;
|
|
|
|
CREATE TABLE blog
|
|
(
|
|
applicationname character varying(255) NOT NULL,
|
|
username character varying(255) NOT NULL,
|
|
posted timestamp with time zone NOT NULL,
|
|
modified timestamp with time zone NOT NULL,
|
|
title character varying(512) NOT NULL,
|
|
bcontent text NOT NULL,
|
|
visible boolean NOT NULL,
|
|
_id bigserial NOT NULL,
|
|
CONSTRAINT blog_pkey PRIMARY KEY (_id),
|
|
CONSTRAINT bloguser FOREIGN KEY (applicationname, username)
|
|
REFERENCES users (applicationname, username) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
-- Table: blfiles
|
|
CREATE TABLE blfiles
|
|
(
|
|
_id bigserial NOT NULL, -- Identifier
|
|
name character varying(2048), -- File Name, relative to the user home directory, must not begin with a slash.
|
|
blid bigint, -- Blog entry identifier (foreign key)
|
|
CONSTRAINT blfiles_pkey PRIMARY KEY (_id),
|
|
CONSTRAINT blfiles_blid_fkey FOREIGN KEY (blid)
|
|
REFERENCES blog (_id) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
COMMENT ON COLUMN blfiles._id IS 'Identifier';
|
|
COMMENT ON COLUMN blfiles.name IS 'File Name, relative to the user home directory, must not begin with a slash.';
|
|
COMMENT ON COLUMN blfiles.blid IS 'Blog entry identifier (foreign key)';
|
|
|
|
-- Table: commandes
|
|
|
|
-- DROP TABLE commandes;
|
|
|
|
CREATE TABLE commandes
|
|
(
|
|
id bigserial NOT NULL, -- Identifiant unique de commande e, cours
|
|
validation date, -- Date de validation
|
|
prdref character varying(255) NOT NULL, -- Product reference from the unique valid catalog at the validation date
|
|
creation timestamp with time zone, -- creation date
|
|
clientname character varying(255), -- user who created the command, client of this command
|
|
applicationname character varying(255), -- application concerned by this command
|
|
params json,
|
|
CONSTRAINT commandes_pkey PRIMARY KEY (id),
|
|
CONSTRAINT commforeignuser FOREIGN KEY (clientname, applicationname)
|
|
REFERENCES users (username, applicationname) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
COMMENT ON COLUMN commandes.id IS 'Identifiant unique de commande e, cours';
|
|
COMMENT ON COLUMN commandes.validation IS 'Date de validation';
|
|
COMMENT ON COLUMN commandes.prdref IS 'Product reference from the unique valid catalog at the validation date';
|
|
COMMENT ON COLUMN commandes.creation IS 'creation date';
|
|
COMMENT ON COLUMN commandes.clientname IS 'user who created the command, client of this command';
|
|
COMMENT ON COLUMN commandes.applicationname IS 'application concerned by this command';
|
|
|
|
|
|
-- Index: fki_commforeignuser
|
|
|
|
-- DROP INDEX fki_commforeignuser;
|
|
|
|
CREATE INDEX fki_commforeignuser
|
|
ON commandes
|
|
USING btree
|
|
(clientname COLLATE pg_catalog."default", applicationname COLLATE pg_catalog."default");
|
|
|
|
|
|
|
|
-- Table: comment
|
|
|
|
-- DROP TABLE comment;
|
|
|
|
CREATE TABLE comment
|
|
(
|
|
username character varying(255) NOT NULL,
|
|
bcontent text NOT NULL,
|
|
posted timestamp with time zone NOT NULL,
|
|
modified timestamp with time zone NOT NULL,
|
|
visible boolean NOT NULL,
|
|
_id bigserial NOT NULL,
|
|
postid bigint,
|
|
applicationname character varying(255),
|
|
CONSTRAINT comment_pkey PRIMARY KEY (_id),
|
|
CONSTRAINT fkey_blog FOREIGN KEY (postid)
|
|
REFERENCES blog (_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION,
|
|
CONSTRAINT fkey_users FOREIGN KEY (username, applicationname)
|
|
REFERENCES users (username, applicationname) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
-- Index: fki_fkey_blog
|
|
|
|
-- DROP INDEX fki_fkey_blog;
|
|
|
|
CREATE INDEX fki_fkey_blog
|
|
ON comment
|
|
USING btree
|
|
(postid);
|
|
|
|
-- Index: fki_fkey_users
|
|
|
|
-- DROP INDEX fki_fkey_users;
|
|
|
|
CREATE INDEX fki_fkey_users
|
|
ON comment
|
|
USING btree
|
|
(username COLLATE pg_catalog."default", applicationname COLLATE pg_catalog."default");
|
|
|
|
|
|
|
|
-- Table: estimate
|
|
|
|
-- DROP TABLE estimate;
|
|
|
|
CREATE TABLE estimate
|
|
(
|
|
_id bigserial NOT NULL, -- identifier
|
|
title character varying(1024) NOT NULL,
|
|
username character varying(255) NOT NULL, -- User name of the owner and creator for this estimate
|
|
applicationname character varying(255) NOT NULL,
|
|
status integer,
|
|
client character varying(255) NOT NULL, -- a login name
|
|
description character varying(65000),
|
|
CONSTRAINT estimate_pkey PRIMARY KEY (_id),
|
|
CONSTRAINT estimate_client_fkey FOREIGN KEY (client, applicationname)
|
|
REFERENCES users (username, applicationname) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE,
|
|
CONSTRAINT estimate_username_fkey FOREIGN KEY (username, applicationname)
|
|
REFERENCES users (username, applicationname) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
COMMENT ON COLUMN estimate._id IS 'identifier';
|
|
COMMENT ON COLUMN estimate.username IS 'User name of the owner and creator for this estimate';
|
|
COMMENT ON COLUMN estimate.client IS 'a login name';
|
|
|
|
|
|
-- Index: cliuser
|
|
|
|
-- DROP INDEX cliuser;
|
|
|
|
CREATE INDEX cliuser
|
|
ON estimate
|
|
USING btree
|
|
(client COLLATE pg_catalog."default", applicationname COLLATE pg_catalog."default");
|
|
|
|
|
|
|
|
-- Table: histoestim
|
|
|
|
-- DROP TABLE histoestim;
|
|
|
|
CREATE TABLE histoestim
|
|
(
|
|
datechange timestamp with time zone NOT NULL DEFAULT now(),
|
|
status integer,
|
|
estid bigint NOT NULL,
|
|
username character varying(255),
|
|
applicationname character varying(255),
|
|
_id bigserial NOT NULL,
|
|
CONSTRAINT histoestim_pkey PRIMARY KEY (_id),
|
|
CONSTRAINT histoestim_estid_fkey FOREIGN KEY (estid)
|
|
REFERENCES estimate (_id) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE,
|
|
CONSTRAINT histoestim_username_fkey FOREIGN KEY (username, applicationname)
|
|
REFERENCES users (username, applicationname) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
|
|
|
|
-- Table: hr
|
|
|
|
-- DROP TABLE hr;
|
|
|
|
CREATE TABLE hr
|
|
(
|
|
userid character varying NOT NULL,
|
|
rate numeric NOT NULL,
|
|
comment text NOT NULL,
|
|
CONSTRAINT hr_pk_new PRIMARY KEY (userid)
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
-- Table: product
|
|
|
|
-- DROP TABLE product;
|
|
|
|
CREATE TABLE product
|
|
(
|
|
ref character varying(255) NOT NULL, -- Product reference from the catalog
|
|
"Name" character varying(1000), -- Product Name
|
|
"Description" character varying(64000), -- Product description
|
|
CONSTRAINT product_pkey PRIMARY KEY (ref)
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
COMMENT ON COLUMN product.ref IS 'Product reference from the catalog';
|
|
COMMENT ON COLUMN product."Name" IS 'Product Name';
|
|
COMMENT ON COLUMN product."Description" IS 'Product description';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- Table: projet
|
|
|
|
-- DROP TABLE projet;
|
|
|
|
CREATE TABLE projet
|
|
(
|
|
id bigserial NOT NULL,
|
|
name character varying NOT NULL,
|
|
prdesc text,
|
|
managerid character varying NOT NULL,
|
|
"ApplicationName" character varying(250),
|
|
CONSTRAINT projet_pk_new PRIMARY KEY (id),
|
|
CONSTRAINT pk_project_manager FOREIGN KEY (managerid, "ApplicationName")
|
|
REFERENCES users (username, applicationname) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
-- Index: fki_pk_project_manager
|
|
|
|
-- DROP INDEX fki_pk_project_manager;
|
|
|
|
CREATE INDEX fki_pk_project_manager
|
|
ON projet
|
|
USING btree
|
|
(managerid COLLATE pg_catalog."default", "ApplicationName" COLLATE pg_catalog."default");
|
|
|
|
|
|
-- Table: stocksymbols
|
|
|
|
-- DROP TABLE stocksymbols;
|
|
|
|
CREATE TABLE stocksymbols
|
|
(
|
|
uniqueid integer,
|
|
stocksymbol character varying(10),
|
|
CONSTRAINT fkprofiles1 FOREIGN KEY (uniqueid)
|
|
REFERENCES profiles (uniqueid) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
-- Table: tag
|
|
|
|
-- DROP TABLE tag;
|
|
|
|
CREATE TABLE tag
|
|
(
|
|
_id bigserial NOT NULL, -- Identifier
|
|
name character varying(30), -- Tag name
|
|
CONSTRAINT tag_pkey PRIMARY KEY (_id),
|
|
CONSTRAINT tag_name_key UNIQUE (name)
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
COMMENT ON COLUMN tag._id IS 'Identifier';
|
|
COMMENT ON COLUMN tag.name IS 'Tag name';
|
|
|
|
|
|
|
|
|
|
-- Table: tagged
|
|
|
|
-- DROP TABLE tagged;
|
|
|
|
CREATE TABLE tagged
|
|
(
|
|
postid bigint NOT NULL,
|
|
tagid bigint NOT NULL,
|
|
CONSTRAINT tagged_pkey PRIMARY KEY (postid, tagid),
|
|
CONSTRAINT tagged_postid_fkey FOREIGN KEY (postid)
|
|
REFERENCES blog (_id) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE,
|
|
CONSTRAINT tagged_tagid_fkey FOREIGN KEY (tagid)
|
|
REFERENCES tag (_id) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
|
|
-- Table: tasks
|
|
|
|
-- DROP TABLE tasks;
|
|
|
|
CREATE TABLE tasks
|
|
(
|
|
id bigserial NOT NULL,
|
|
name character varying NOT NULL,
|
|
start date NOT NULL,
|
|
endd date NOT NULL,
|
|
tdesc text NOT NULL,
|
|
prid bigint NOT NULL,
|
|
CONSTRAINT tasks_pk_new PRIMARY KEY (id),
|
|
CONSTRAINT tasks_fk_new FOREIGN KEY (prid)
|
|
REFERENCES projet (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
|
|
-- Table: taskdeps
|
|
|
|
-- DROP TABLE taskdeps;
|
|
|
|
CREATE TABLE taskdeps
|
|
(
|
|
"taskId" bigint NOT NULL, -- dependent task
|
|
deptask bigint NOT NULL, -- Dependency
|
|
CONSTRAINT pk_tasks_deps PRIMARY KEY ("taskId", deptask),
|
|
CONSTRAINT pk_foreign_dep FOREIGN KEY (deptask)
|
|
REFERENCES tasks (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION,
|
|
CONSTRAINT pk_foreign_task FOREIGN KEY ("taskId")
|
|
REFERENCES tasks (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
COMMENT ON TABLE taskdeps
|
|
IS 'Dependencies between tasks';
|
|
COMMENT ON COLUMN taskdeps."taskId" IS 'dependent task';
|
|
COMMENT ON COLUMN taskdeps.deptask IS 'Dependency';
|
|
|
|
|
|
-- Index: fki_pk_foreign_dep
|
|
|
|
-- DROP INDEX fki_pk_foreign_dep;
|
|
|
|
CREATE INDEX fki_pk_foreign_dep
|
|
ON taskdeps
|
|
USING btree
|
|
(deptask);
|
|
|
|
-- Index: fki_pk_foreign_task
|
|
|
|
-- DROP INDEX fki_pk_foreign_task;
|
|
|
|
CREATE INDEX fki_pk_foreign_task
|
|
ON taskdeps
|
|
USING btree
|
|
("taskId");
|
|
|
|
|
|
|
|
-- Table: writtings
|
|
|
|
-- DROP TABLE writtings;
|
|
|
|
CREATE TABLE writtings
|
|
(
|
|
_id bigserial NOT NULL, -- identifier
|
|
count integer, -- multiplier
|
|
estimid bigint NOT NULL, -- Estimaton identifier
|
|
description character varying(2047), -- item textual description
|
|
productid character varying(512), -- Product reference ... may be a key in a catalog, may contain a catalog id
|
|
ucost numeric(8,2), -- en euro.?
|
|
CONSTRAINT writtings_pkey PRIMARY KEY (_id),
|
|
CONSTRAINT writtings_estimid_fkey FOREIGN KEY (estimid)
|
|
REFERENCES estimate (_id) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
COMMENT ON COLUMN writtings._id IS 'identifier';
|
|
COMMENT ON COLUMN writtings.count IS 'multiplier';
|
|
COMMENT ON COLUMN writtings.estimid IS 'Estimaton identifier';
|
|
COMMENT ON COLUMN writtings.description IS 'item textual description';
|
|
COMMENT ON COLUMN writtings.productid IS 'Product reference ... may be a key in a catalog, may contain a catalog id';
|
|
COMMENT ON COLUMN writtings.ucost IS 'en euro.?';
|
|
|
|
|
|
|
|
|
|
-- Table: wrtags
|
|
|
|
-- DROP TABLE wrtags;
|
|
|
|
CREATE TABLE wrtags
|
|
(
|
|
wrid bigint NOT NULL,
|
|
tagid bigint NOT NULL,
|
|
CONSTRAINT wrtags_pkey1 PRIMARY KEY (wrid, tagid),
|
|
CONSTRAINT cstwrtagsref FOREIGN KEY (tagid)
|
|
REFERENCES tag (_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION,
|
|
CONSTRAINT wrtags_wrid_fkey1 FOREIGN KEY (wrid)
|
|
REFERENCES writtings (_id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
-- Index: fki_cstwrtagsref
|
|
|
|
-- DROP INDEX fki_cstwrtagsref;
|
|
|
|
CREATE INDEX fki_cstwrtagsref
|
|
ON wrtags
|
|
USING btree
|
|
(tagid);
|
|
|
|
|
|
-- Table: wrfiles
|
|
|
|
-- DROP TABLE wrfiles;
|
|
|
|
CREATE TABLE wrfiles
|
|
(
|
|
_id bigserial NOT NULL , -- Identifier
|
|
name character varying(2048), -- File Name, relative to the user home directory, must not begin with a slash.
|
|
wrid bigint, -- Writting identifier (foreign key)
|
|
CONSTRAINT wrtags_pkey PRIMARY KEY (_id),
|
|
CONSTRAINT wrtags_wrid_fkey FOREIGN KEY (wrid)
|
|
REFERENCES writtings (_id) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
);
|
|
|
|
COMMENT ON COLUMN wrfiles._id IS 'Identifier';
|
|
COMMENT ON COLUMN wrfiles.name IS 'File Name, relative to the user home directory, must not begin with a slash.';
|
|
COMMENT ON COLUMN wrfiles.wrid IS 'Writting identifier (foreign key)';
|
|
|
|
|
|
-- Table: histowritting
|
|
|
|
-- DROP TABLE histowritting;
|
|
|
|
CREATE TABLE histowritting
|
|
(
|
|
datechange timestamp with time zone NOT NULL DEFAULT now(),
|
|
status integer,
|
|
wrtid bigint NOT NULL,
|
|
username character varying(255),
|
|
applicationname character varying,
|
|
_id bigserial NOT NULL,
|
|
CONSTRAINT histowritting_pkey PRIMARY KEY (_id),
|
|
CONSTRAINT histowritting_username_fkey FOREIGN KEY (username, applicationname)
|
|
REFERENCES users (username, applicationname) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE NO ACTION,
|
|
CONSTRAINT histowritting_wrtid_fkey FOREIGN KEY (wrtid)
|
|
REFERENCES writtings (_id) MATCH SIMPLE
|
|
ON UPDATE CASCADE ON DELETE CASCADE
|
|
)
|
|
WITH (
|
|
OIDS=FALSE
|
|
); |