2009-12-07 3 views
0

PHP, MYSQL에서 개발 한 웹 응용 프로그램과 관련된 질문이 있습니다.데이터베이스 응용 프로그램에 적합한 디자인

기본적으로 부분 1은 다음과 같습니다. 결과를 소프트웨어 테스팅을 위해 테이블 ​​형식으로 표시합니다.

ID Prod_Name  Set Date  Result Platform 
1 Alpha1   Pro1 01.01.01 PASS 2.3.1.2_OS 

지금, 내가 따라

Table Name: Results 
ID, Name, Date, Result 

Table Name : Set 
ID, Set_Name, Prod_name 

Table Name : Platform 
ID, Platform_Name, Set_Name 

이제 테이블을 분할 한 각 테이블의 ID가 증가 된 값이며, 다른 어떤 관련이 없습니다.

내 PHP 애플 리케이션은 '결과'테이블에서 결과를 가져 오는 것으로 시작합니다. 나는 모든 행에 대해 표시되도록 설정하려는 때문에, 나는 데이터베이스에 다른 연결을하고

select Set_name 
from Set 
where Prod_name = row['Name'] // row['Name'] is fetched from the results table. 

지금 나는 또한 내가 위의 방법을 사용하여 플랫폼 테이블에서 추출하고 플랫폼을 표시 할 쿼리를 사용하고 있습니다 즉 다른 연결을 설정하고 Set_Name = row['Set_Name']을 Set 테이블에서 전달합니다.

이제 내 응용 프로그램에 대해 동일한 결과를 얻을 수있는 다른 방법이 있습니까?

일반적으로 대규모 웹 기반 응용 프로그램의 경우 데이터베이스 서버에서 데이터를 가져 오는 경우 DB 서버에 다중 연결이 가능합니까?

MySQL이 연결 문을 한 번 선언하면 필요하지는 않지만 MSSQL 서버는 무엇인지 고려하지 마십시오. 여러 조인/자기 조인/공용체와 함께 긴 SQL 문을 작성하고 해당 변수를 응용 프로그램 전체에서 사용해야합니까?

이 케이스의 응용 프로그램 디자인은 어떻게됩니까?

anyonce가 나에게 아이디어를 줄 수 있습니까?

감사합니다.

답변

0

나는 모든 것을 이해하지 못했지만 여기에는 비슷한 것이 있습니다. 먼저 ER 모델을 만듭니다. 이제

producttest_model_01



, 당신이 좋아하는 것 같지 않기 때문에 데이터베이스에서 뷰를 생성, 결합한다. 이와
CREATE VIEW v_test AS 
SELECT TestID, ProductName, TestName, Date, Result, PlatformName 
FROM Product AS p 
     JOIN Test AS t ON t.ProductID = p.ProductID 
     JOIN Platform AS f ON f.PlatformID = t.PlatformID; 

장소에, 당신은 간단하게 사용할 수 있습니다

SELECT * FROM v_test WHERE ProductName = 'Alpha1' 

또한 비슷한 시나리오 this question/answer 한 번 봐 걸릴 수 있습니다.

2

데이터베이스의 특성상 거의 모든 세 가지 테이블을 조인하는 SELECT 문은 테이블을 쿼리하는 세 개의 별도 명령문보다 잘 수행됩니다. 조인이란 관계형 데이터베이스가하는 일입니다.

관련 문제