2009-12-07 77 views
0

我有一个与我在PHP,MYSQL中开发的Web应用程序相关的问题。适用于数据库应用程序的设计

基本上第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表中传递Set_Name = row['Set_Name']

现在对于我的应用程序是否有其他方式来实现相同的结果?

通常,对于基于大型Web的应用程序,如果数据来自数据库服务器正在与数据库服务器建立多个连接可行的选项?

请不要考虑用MySQL声明一个连接语句一次会做必要的事实,但MSSQL服务器呢?我们是否需要用几个连接/自连接/联合来编写长的sql语句,并在整个应用程序中使用这些变量?

这种情况下的应用程序设计如何?

Canononce可以给我一些想法吗?

谢谢。

回答

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语句将比单独查询每个表的每个语句执行得更好。加入是关系数据库的功能。

相关问题