---
# System prepended metadata

title: Database Design - Table Entity & Attributes

---

# Database Design - Table Entity & Attributes 


## 1. TestRun Table
> Stores specific instance of a test record. 
> Linked to the Test Configuration to capture the configuration details for the test.
```sql=
CREATE TABLE TestRun (
    ID INT PRIMARY KEY auto_increment,
    start_time DATETIME,
    end_time DATETIME,
    TestConfiguration_ID INT,
    test_status VARCHAR(30),
    note VARCHAR(255),
    vistaBuild VARCHAR(30),
    awcBuild VARCHAR(30),
    snmpBuild VARCHAR(30),
    log_file_location VARCHAR(255),
    FOREIGN KEY (TestConfiguration_ID) REFERENCES TestConfiguration(ID)
);
```
> Attributes
* ID: Primary key for TestRun table.
* start_time: DateTime indicating the start time of the test run.
* end_time: DateTime indicating the end time of the test run.
* test_status: Mark of testrun result(Pass, Fail, Inprogress, Error)
* note: Note for user against a test run
* log_file_location: Filed for location of test_run log file
* TestConfiguration_ID: Foreign key referencing the ID in the TestConfiguration table.
<br>

## 2. RecordingPollingDuration Table
> Stores details of a specific type of test recording.
> Linked to the TestRun to associate recordings with specific test runs.
```sql=
CREATE TABLE RecordingPollingDuration (
    ID INT PRIMARY KEY auto_increment,
    TestRun_ID INT,
    Test_identifier VARCHAR(255),
    start_time DATETIME,
    end_time DATETIME,
    duration INT,
    time_out_flag BOOLEAN,
    FOREIGN KEY (TestRun_ID) REFERENCES TestRun(ID)
);
```
> Attributes
* ID: Primary key for RecordingPollingDuration table.
* TestRun_ID: Foreign key referencing the ID in the TestRun table.
* Test_identifier: A unique identifier for the recording type.
* start_time: DateTime indicating the start time of the recording.
* end_time: DateTime indicating the end time of the recording.
* duration: Duration of the recording in seconds.
* time_out_flag: Boolean flag indicating if a timeout occurred.
<br>

## 3. TestConfiguration Table
> Stores configuration settings for a test run.
> Connected to both TestRun and RecordingPollingDuration tables to provide configuration details for each test.
```sql=
CREATE TABLE TestConfiguration (
    ID INT PRIMARY KEY auto_increment,
    server_ip_address VARCHAR(255),
    server_username VARCHAR(255),
    server_password VARCHAR(255),
    amf_ip_address VARCHAR(255),
    amf_username VARCHAR(255),
    amf_password VARCHAR(255),
    awc_url VARCHAR(255),
    snmp_url VARCHAR(255),
    snmp_backup_file_location VARCHAR(255),
    exe_file_download_location VARCHAR(255),
    expected_amf_node_count INT,
    expected_guest_node_count INT,
    expected_awc_node_count INT,
    expected_snmp_node_count INT,
    expected_health_monitoring_count INT,
    expected_dd_count INT,
    expected_awc_client_count INT,
    polling_timeout INT,
    is_default_configuration BOOLEAN,
    memory_headroom_percentage INT,
    cpu_headroom_percentage INT,
    disk_headroom_percentage INT,
    test_option VARCHAR(20),
    is_ga BOOLEAN,
    scenario_name VARCHAR(50)
);

```
> Attributes
* ID: Primary key for TestConfiguration table.
* Various configuration attributes related to server, AMF, AWC, SNMP, and expected node counts.
* is_default_configuration: Field for default configuration
* memory, cpu, disk_headroom: Percentage for headroom
* test_option: Option for test running time(Normal/24h/7days)
* is_ga: Mark of general availability

<br>

## 4. RecordingCPU Table
> Records performance metrics related to CPU.
> Linked to the TestRun to associate metrics with specific test runs.
```sql=
CREATE TABLE RecordingCPU (
    ID INT PRIMARY KEY auto_increment,
    TestRun_ID INT,
    Test_identifier VARCHAR(255),
    start_time DATETIME,
    end_time DATETIME,
    duration INT,
    cpu_max INT,
    cpu_min INT,
    cpu_average INT,
    cpu_core INT,
    cpu_model VARCHAR(255),
    is_overall BOOLEAN,
    FOREIGN KEY (TestRun_ID) REFERENCES TestRun(ID)
);
```
> Attributes
* ID: Primary key for RecordingCPU table.
* TestRun_ID: Foreign key referencing the ID in the TestRun table.
* Test_identifier: A unique identifier for the recording type.
* start_time: DateTime indicating the start time of the recording.
* end_time: DateTime indicating the end time of the recording.
* duration: Duration of the recording in seconds.
* cpu_max, cpu_min, cpu_average: Metrics related to CPU.
* cpu_model: Field to represent the current CPU model being recorded.
* cpu_core: Field to identify the specific CPU core for reading.
* is_overall: Field to distinguish between single core and overall  CPU recording
<br>

## 5. RecordingNetwork Table
> Records performance metrics related to Network.
> Linked to the TestRun to associate metrics with specific test runs.
```sql=
CREATE TABLE RecordingNetwork (
    ID INT PRIMARY KEY auto_increment,
    TestRun_ID INT,
    Test_identifier VARCHAR(255),
    start_time DATETIME,
    end_time DATETIME,
    duration INT,
    network_send_max INT,
    network_send_min INT,
    network_send_average INT,
    network_receive_max INT,
    network_receive_min INT,
    network_receive_average INT,
    FOREIGN KEY (TestRun_ID) REFERENCES TestRun(ID)
);
```
> Attributes
* ID: Primary key for RecordingNetwork table.
* TestRun_ID: Foreign key referencing the ID in the TestRun table.
* Test_identifier: A unique identifier for the recording type.
* start_time: DateTime indicating the start time of the recording.
* end_time: DateTime indicating the end time of the recording.
* duration: Duration of the recording in seconds.
* network_max, network_min, network_average: Metrics related to network.
<br>

## 6. RecordingMemory Table
> Records performance metrics related to RAM.
> Linked to the TestRUn to associate metrics with specific test runs.
```sql=
CREATE TABLE RecordingMemory (
    ID INT PRIMARY KEY auto_increment,
    TestRun_ID INT,
    Test_identifier VARCHAR(255),
    recording_time DATETIME,
    ram_reading INT,
    ram_max INT,
    remaining_ram INT,
    FOREIGN KEY (TestRun_ID) REFERENCES TestRun(ID)
);
```
> Attributes
* ID: Primary key for RecordingMemory table.
* TestRun_ID: Foreign key referencing the ID in the TestRun table.
* Test_identifier: A unique identifier for the recording type.
* recording_time: DateTime indicating the start time of the recording.
* ram_reading: Metrics related to ram
* remaining_ram: Mark of remaining ram
<br>

## 7. RecordingDisk Table
> Records performance metrics related to SSD.
> Linked to the TestRUn to associate metrics with specific test runs.
```sql=
CREATE TABLE RecordingDisk (
    ID INT PRIMARY KEY auto_increment,
    TestRun_ID INT, 
    Test_identifier VARCHAR(255),
    reading_time DATETIME,
    install_foler_size INT,
    disk_used INT,
    disk_total INT,
    FOREIGN KEY (TestRun_ID) REFERENCES TestRun(ID)
);
```
> Attributes
* ID: Primary key for RecordingDisk table.
* TestRun_ID: Foreign key referencing the ID in the TestRun table.
* Test_identifier: A unique identifier for the recording type.
* reading_time: DateTime indicating the start time of the recording.
* install_folder_size, disk_used, disk_total: Metrics related to SSD.
<br>

## 8. RecordingNode Table
> Records counts and metrics related to nodes.
> Linked to the TestRun to associate metrics with specific test runs.
```sql=
CREATE TABLE RecordingNode (
    ID INT PRIMARY KEY auto_increment,
    TestRun_ID INT,
    Test_identifier VARCHAR(255),
    start_time DATETIME,
    end_time DATETIME,
    duration INT,
    pass_fail BOOLEAN,
    timeout_flag BOOLEAN,
    amf_count INT,
    dd_count INT,
    guest_count INT,
    awc_count INT,
    awc_client_count INT,
    snmp_count INT,
    FOREIGN KEY (TestRun_ID) REFERENCES TestRun(ID)
);

```
> Attributes
* ID: Primary key for RecordingNode table.
* TestRun_ID: Foreign key referencing the ID in the TestRun table.
* Test_identifier: A unique identifier for the recording type.
* start_time: DateTime indicating the start time of the recording.
* end_time: DateTime indicating the end time of the recording.
* duration: Duration of the recording in seconds.
* pass_fail, timeout_flag: Boolean flags.
* Counts related to AMF, DD, guests, AWC, clients, SNMP.
<br>


 