Tópico webservers, fóruns, SQL, PHP, ASP, etc

Ajuda SQL Server

Ajuda SQL Server

Malta...Ajudem-me a por esta coisa a dar...Ja ando aqui ás voltas...
Acredito que seja facil, mas a minha cabeça hoje não dá mais [xx(]

O codigo é o seguinte

citação:
Código:
create table crianca(codcrianca numeric PRIMARY KEY,
nome varchar,
datanascimento datetime,
sexo varchar,
morada varchar,
telefone numeric(9),
telemovel numeric(9),
codenc numeric,
codtutor numeric,
escalao numeric,
codfuncionario numeric,
codsaude numeric,
FOREIGN KEY(codenc) REFERENCES enceducacao (codenc),
FOREIGN KEY(codtutor) REFERENCES tutor(codtutor),
FOREIGN KEY(escalao) REFERENCES escalao (tipo_escalao),
FOREIGN KEY(codfuncionario) REFERENCES funcionario (codfuncionario),
FOREIGN KEY(codsaude) REFERENCES crianca (codsaude),
);

create table cargo(nomecargo varchar PRIMARY KEY,
salario money, 
);

create table cuidados_especiais_saude(codsaude numeric PRIMARY KEY,
nome varchar,
codcrianca numeric,
descricao_problema varchar,
);

create table enceducacao(codenc numeric PRIMARY KEY,
nome varchar(30),
sexo varchar,
morada varchar(60),
telefone numeric(9),
telemovel numeric(9),
);

create table tutor(codtutor numeric PRIMARY KEY,
nome varchar(30),
sexo varchar,
morada varchar(60),
telefone numeric(9),
telemovel numeric(9),
);

create table escalao(tipo_escalao numeric PRIMARY KEY,
custo money,
);

create table funcionario(codfuncionario numeric PRIMARY KEY,
nome varchar,
datanascimento datetime,
sexo varchar,
morada varchar,
telefone numeric(9),
telemovel numeric(9),
cargo varchar(20),
NIB numeric,
sala numeric,
FOREIGN KEY(cargo) REFERENCES cargo(nomecargo),
);

create table pagamentos(
valor money,
cargo varchar,
mes varchar,
codfuncionario numeric,
FOREIGN KEY(cargo) REFERENCES cargo (nomecargo),
);

create table sala(numsala numeric PRIMARY KEY,
capacidade numeric,
educador_responsavel varchar,
FOREIGN KEY(educador_responsavel) REFERENCES funcionario(codfuncionario),
);

create table stock_material(
codmat numeric,
nome varchar,
quantidade numeric,
descricao varchar,
PRIMARY KEY (codmat),
);

E é para ficar com estas relações (muda um nome ou outro só)



Será que me conseguem ajudar?
 
Altera a ordem de criação das tabelas.
No código estás a começar por criar a tabela "crianca" que tem dependências de outras tabelas ou chaves.
 
citação:Originalmente colocada por Unreal

Malta...Ajudem-me a por esta coisa a dar...Ja ando aqui ás voltas...
Acredito que seja facil, mas a minha cabeça hoje não dá mais [xx(]

O codigo é o seguinte

citação:
Código:
create table crianca(codcrianca numeric PRIMARY KEY,
nome varchar,
datanascimento datetime,
sexo varchar,
morada varchar,
telefone numeric(9),
telemovel numeric(9),
codenc numeric,
codtutor numeric,
escalao numeric,
codfuncionario numeric,
codsaude numeric,
FOREIGN KEY(codenc) REFERENCES enceducacao (codenc),
FOREIGN KEY(codtutor) REFERENCES tutor(codtutor),
FOREIGN KEY(escalao) REFERENCES escalao (tipo_escalao),
FOREIGN KEY(codfuncionario) REFERENCES funcionario (codfuncionario),
FOREIGN KEY(codsaude) REFERENCES crianca (codsaude),
);

create table cargo(nomecargo varchar PRIMARY KEY,
salario money, 
);

create table cuidados_especiais_saude(codsaude numeric PRIMARY KEY,
nome varchar,
codcrianca numeric,
descricao_problema varchar,
);

create table enceducacao(codenc numeric PRIMARY KEY,
nome varchar(30),
sexo varchar,
morada varchar(60),
telefone numeric(9),
telemovel numeric(9),
);

create table tutor(codtutor numeric PRIMARY KEY,
nome varchar(30),
sexo varchar,
morada varchar(60),
telefone numeric(9),
telemovel numeric(9),
);

create table escalao(tipo_escalao numeric PRIMARY KEY,
custo money,
);

create table funcionario(codfuncionario numeric PRIMARY KEY,
nome varchar,
datanascimento datetime,
sexo varchar,
morada varchar,
telefone numeric(9),
telemovel numeric(9),
cargo varchar(20),
NIB numeric,
sala numeric,
FOREIGN KEY(cargo) REFERENCES cargo(nomecargo),
);

create table pagamentos(
valor money,
cargo varchar,
mes varchar,
codfuncionario numeric,
FOREIGN KEY(cargo) REFERENCES cargo (nomecargo),
);

create table sala(numsala numeric PRIMARY KEY,
capacidade numeric,
educador_responsavel varchar,
FOREIGN KEY(educador_responsavel) REFERENCES funcionario(codfuncionario),
);

create table stock_material(
codmat numeric,
nome varchar,
quantidade numeric,
descricao varchar,
PRIMARY KEY (codmat),
);

E é para ficar com estas relações (muda um nome ou outro só)



Será que me conseguem ajudar?

1º tens que criar as tabelas Mães, só depois é que crias as tabelas filhas.

Porque é que não crias as tabelas no Enterprise Manager e depois crias as ligações entre elas?!?!

É muito mais fácil do que estares a fazer no Query Analyzer.

Mas vou ver o que se passa com o código e já ponho aqui a solução.
 
Tens uma data de erros no código.

1º nunca se criam campos do tipo varchar sem defenir o seu tamanho (a tabela cuidados_especiais_saude tem exemplos disso).

2º nunca se criam campos como chave primária do tipo varchar, têm de ser sempre do tipo int (na tabela cargo o campo nomecargo é do tipo varchar).

3º nunca se criam tabelas sem chaves primárias (a tabela de Pagamentos não tem chave primária).

4º quando crias uma ligação entre duas tabelas os campos que se relacionam têm de ser do mesmo tipo e não de tipos diferentes (na tabela funcionario o campo cargo é do tipo varchar(20) e na tabela cargo é do tipo varchar).

5º os nomes do campos das tabelas que se relacionam têm ter o mesmo nome.

A tabela codmat não tem nenhuma relação.

Aqui está o script com a solução, cria as tabelas pelo ordem que está, basta correres os script todo que ele cria as tabelas e as relações entre elas.

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK__funcionar__cargo__76619304]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[funcionario] DROP CONSTRAINT FK__funcionar__cargo__76619304
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK__pagamento__cargo__73852659]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[pagamentos] DROP CONSTRAINT FK__pagamento__cargo__73852659
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_cuidados_especiais_saude]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_cuidados_especiais_saude
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_enceducacao]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_enceducacao
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_escalao]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_escalao
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_tutor]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_tutor
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_crianca_funcionario]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[crianca] DROP CONSTRAINT FK_crianca_funcionario
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK__sala__educador_r__793DFFAF]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[sala] DROP CONSTRAINT FK__sala__educador_r__793DFFAF
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[crianca]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[crianca]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sala]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[sala]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[funcionario]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[funcionario]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[pagamentos]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[pagamentos]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cargo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[cargo]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[cuidados_especiais_saude]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[cuidados_especiais_saude]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[enceducacao]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[enceducacao]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[escalao]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[escalao]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[stock_material]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[stock_material]
GO

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tutor]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[tutor]
GO

CREATE TABLE [dbo].[cargo] (
[nomecargo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[salario] [money] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[cuidados_especiais_saude] (
[codsaude] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[codcrianca] [numeric](18, 0) NULL ,
[descricao_problema] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[enceducacao] (
[codenc] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[sexo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[morada] [varchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[telefone] [numeric](9, 0) NULL ,
[telemovel] [numeric](9, 0) NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[escalao] (
[tipo_escalao] [numeric](18, 0) NOT NULL ,
[custo] [money] NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[stock_material] (
[codmat] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[quantidade] [numeric](18, 0) NULL ,
[descricao] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[tutor] (
[codtutor] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[sexo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[morada] [varchar] (60) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[telefone] [numeric](9, 0) NULL ,
[telemovel] [numeric](9, 0) NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[funcionario] (
[codfuncionario] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[datanascimento] [datetime] NULL ,
[sexo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[morada] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[telefone] [numeric](9, 0) NULL ,
[telemovel] [numeric](9, 0) NULL ,
[cargo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[NIB] [numeric](18, 0) NULL ,
[sala] [numeric](18, 0) NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[pagamentos] (
[valor] [money] NULL ,
[cargo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[mes] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[codfuncionario] [numeric](18, 0) NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[crianca] (
[codcrianca] [numeric](18, 0) NOT NULL ,
[nome] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[datanascimento] [datetime] NULL ,
[sexo] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[morada] [varchar] (1) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[telefone] [numeric](9, 0) NULL ,
[telemovel] [numeric](9, 0) NULL ,
[codenc] [numeric](18, 0) NULL ,
[codtutor] [numeric](18, 0) NULL ,
[escalao] [numeric](18, 0) NULL ,
[codfuncionario] [numeric](18, 0) NULL ,
[codsaude] [numeric](18, 0) NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[sala] (
[numsala] [numeric](18, 0) NOT NULL ,
[capacidade] [numeric](18, 0) NULL ,
[educador_responsavel] [numeric](18, 0) NULL
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[cargo] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[nomecargo]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[cuidados_especiais_saude] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codsaude]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[enceducacao] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codenc]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[escalao] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[tipo_escalao]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[stock_material] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codmat]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[tutor] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codtutor]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[funcionario] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codfuncionario]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[crianca] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[codcrianca]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[sala] WITH NOCHECK ADD
PRIMARY KEY CLUSTERED
(
[numsala]
) ON [PRIMARY]
GO

ALTER TABLE [dbo].[funcionario] ADD
FOREIGN KEY
(
[cargo]
) REFERENCES [dbo].[cargo] (
[nomecargo]
)
GO

ALTER TABLE [dbo].[pagamentos] ADD
FOREIGN KEY
(
[cargo]
) REFERENCES [dbo].[cargo] (
[nomecargo]
)
GO

ALTER TABLE [dbo].[crianca] ADD
CONSTRAINT [FK_crianca_cuidados_especiais_saude] FOREIGN KEY
(
[codsaude]
) REFERENCES [dbo].[cuidados_especiais_saude] (
[codsaude]
),
CONSTRAINT [FK_crianca_enceducacao] FOREIGN KEY
(
[codenc]
) REFERENCES [dbo].[enceducacao] (
[codenc]
),
CONSTRAINT [FK_crianca_escalao] FOREIGN KEY
(
[escalao]
) REFERENCES [dbo].[escalao] (
[tipo_escalao]
),
CONSTRAINT [FK_crianca_funcionario] FOREIGN KEY
(
[codfuncionario]
) REFERENCES [dbo].[funcionario] (
[codfuncionario]
),
CONSTRAINT [FK_crianca_tutor] FOREIGN KEY
(
[codtutor]
) REFERENCES [dbo].[tutor] (
[codtutor]
)
GO

ALTER TABLE [dbo].[sala] ADD
FOREIGN KEY
(
[educador_responsavel]
) REFERENCES [dbo].[funcionario] (
[codfuncionario]
)
GO



20071199512_Solução.JPG
 
citação:Originalmente colocada por b4u

Não estarás enganado no ponto 2 Sapina?

O meu ultimo projecto teve que ter chaves primárias do tipo varchar

Em todos os projecto onde estive (em vários clientes) a regra foi, chave primária nunca podia ser do tipo varchar, tem haver com questões e efeciência, imagina uma tabela com 1 milhão de registos onde a chave primária seja do tipo varchar.
 
citação:Originalmente colocada por Sapina

(...)
1º nunca se criam campos do tipo varchar sem defenir o seu tamanho (a tabela cuidados_especiais_saude tem exemplos disso). Exacto. Porque se não se definir, fica com dimensão 1.

2º nunca se criam campos como chave primária do tipo varchar, têm de ser sempre do tipo int (na tabela cargo o campo nomecargo é do tipo varchar). Porquê? há milhentas de situações em que dá muito jeito ter uma PK varchar, ou conjunções de várias varchar. Até se pode criar PK com campos datetime.

3º nunca se criam tabelas sem chaves primárias (a tabela de Pagamentos não tem chave primária). Certo, não convêm nada...

4º quando crias uma ligação entre duas tabelas os campos que se relacionam têm de ser do mesmo tipo e não de tipos diferentes (na tabela funcionario o campo cargo é do tipo varchar(20) e na tabela cargo é do tipo varchar). Devem ser do mesmo tipo, mesma dimensão e mesma precisão.

5º os nomes do campos das tabelas que se relacionam têm ter o mesmo nome. há toda a conveniência nisso, mas não é obrigatório.
(...)
 
eu até ia responder, mas já foi tudo dito...
se tivesses com atenção ás aulas de base de dados ias ver que as tuas duvidas até são básicas.
 
citação:Originalmente colocada por blink

citação:Originalmente colocada por Sapina

(...)
2º nunca se criam campos como chave primária do tipo varchar, têm de ser sempre do tipo int (na tabela cargo o campo nomecargo é do tipo varchar). Porquê? há milhentas de situações em que dá muito jeito ter uma PK varchar, ou conjunções de várias varchar. Até se pode criar PK com campos datetime.

Em relação ao ponto 2, vens trabalhar aqui para o projecto onde estou e depois faz uma query a uma tabela que tenha como chave primária um campo do tipo int e depois compara com um campo do tipo varchar...vais notar e bem a diferença de resposta.

Claro que se estivermos a falar de tabelas com algumas centenas de registos não há problema, mas se tivrem alguns milhões de registos o caso muda de figura...

Se tivesses trabalho com DB2 entendias o que te estou a dizer.;)
 
citação:Originalmente colocada por Sapina

citação:Originalmente colocada por blink

citação:Originalmente colocada por Sapina

(...)
2º nunca se criam campos como chave primária do tipo varchar, têm de ser sempre do tipo int (na tabela cargo o campo nomecargo é do tipo varchar). Porquê? há milhentas de situações em que dá muito jeito ter uma PK varchar, ou conjunções de várias varchar. Até se pode criar PK com campos datetime.

Em relação ao ponto 2, vens trabalhar aqui para o projecto onde estou e depois faz uma query a uma tabela que tenha como chave primária um campo do tipo int e depois compara com um campo do tipo varchar...vais notar e bem a diferença de resposta.

Claro que se estivermos a falar de tabelas com algumas centenas de registos não há problema, mas se tivrem alguns milhões de registos o caso muda de figura...

Se tivesses trabalho com DB2 entendias o que te estou a dizer.;)
Lê lá de novo o que escreveste, e lê lá de novo o que eu escrevi.
 
Mas... há situações em que a chave tem que ser gerada de acordo com um código de produto por questões de integridade e eficiencia... nesses casos inteiros não servem
 
citação:Originalmente colocada por Liberal

Altera a ordem de criação das tabelas.
No código estás a começar por criar a tabela "crianca" que tem dependências de outras tabelas ou chaves.
Exacto, Unreal, estás a indicar campos/tabelas que não existem para chaves estrangeiras.

Tenta de novo, mas criando a tabela "crianca" no final.
 
citação:Originalmente colocada por b4u

Mas... há situações em que a chave tem que ser gerada de acordo com um código de produto por questões de integridade e eficiencia... nesses casos inteiros não servem

Nesses casos criam-se CONSTRAINTS.

Exemplo:
CREATE TABLE [AAA] (
[qqq] [int] NOT NULL ,
[BBB] [varchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
PRIMARY KEY CLUSTERED
(
[qqq]
) ON [PRIMARY] ,
CONSTRAINT [IX_AAA] UNIQUE NONCLUSTERED
(
[BBB]
) ON [PRIMARY]
) ON [PRIMARY]
GO
 
citação:Originalmente colocada por worldtiki

citação:Originalmente colocada por Liberal

Altera a ordem de criação das tabelas.
No código estás a começar por criar a tabela "crianca" que tem dependências de outras tabelas ou chaves.
Exacto, Unreal, estás a indicar campos/tabelas que não existem para chaves estrangeiras.

Tenta de novo, mas criando a tabela "crianca" no final.

Se tentar fazer isso não vai conseguir, testa tu e vais ver os erros que te dão.
 
Obrigado Sapina...Lá me safei entre as 2 e as 3 da manha...
Realmente não sabia que o ultimo a criar era a tabela mãe (disseram-me depois).

Eu só posso criar a BD pela query analyser....
Vou pegar naquelas regras e copia-las, dão sempre jeito.
Obrigado a todos ;)
 
ASP.Net & AJAX - já experimentaram?

ASP.Net & AJAX - já experimentaram?

Viva,
sou um tanto programador especialmente em ASP.Net VB ou C# (conforme os dias!!), e tenho me interessado por novas funcionalidades e ouvi falar mto bem do AJAX over ASP.Net!

Já alguma vez experimentaram?QUe controlos esperimentaram?Tou a pensar em implementar o Auto complete para textbox, de modo a pesquisar num arraylist uma série de dados de modo a autocompletar o texto. Basta adicionar os namespaces no web.config e na página .aspx correcto?

Deixem opiniões, cumps!
 
ASP.Net vs PHP (tópico desaparecido)

ASP.Net vs PHP (tópico desaparecido)

Viva, procurei por este tópico e não encontrei, basicamente a ideia seria trocar aqui opiniões e contrastar perspectivas em ambas tecnologias.

Não cou praticante do php, mais do asp.net, mas deixo aqui o meu contributo.

ASP.Net:

+ Fácil de aprender
+ Desenvolvimento rápido (ferramentas user-oriented)
+ Segurança

- Talvez um pouco mais lento
- Servidores Windows IIS a pagar...

PHP:
+ Detalhado para programadores experientes
+ Rápido qb

- Transmite-me pouca sensação de segurança
- Não me parece estar associado a projectos de grande porte
- Desenvolvimento manual de muitas coisas que já podiam ser automáticas (tou a dar palpite, não sei se não há já ferramentas que o fazem, e não me refiro a PHP Nukes!)

Já agora, o que acham dos PHP e ASP Nukes?São dinâmicos ao ponto de desenvolver projectos de vários tipos?Cumps!
 
Voltar
Superior