# Ruddr schema ERD

Table and field reference for the Fivetran Ruddr connector.

## Table & Field Reference

### location

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| is_active | Unknown |  |
| name | Unknown |  |

### project_tag

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| project_id | Unknown | PK, FK |
| name | Unknown |  |

### project

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| client_id | Unknown | FK |
| practice_id | Unknown | FK |
| billing_type_id | Unknown |  |
| budget_billable_expense | Unknown |  |
| budget_billable_hour | Unknown |  |
| budget_mode | Unknown |  |
| budget_non_billable_expense | Unknown |  |
| budget_non_billable_hour | Unknown |  |
| budget_other_revenue | Unknown |  |
| budget_revenue | Unknown |  |
| budget_services_revenue | Unknown |  |
| code | Unknown |  |
| created_at | Unknown |  |
| currency | Unknown |  |
| ends | Unknown |  |
| fixed_fee | Unknown |  |
| fixed_recurring_end | Unknown |  |
| fixed_recurring_fee | Unknown |  |
| fixed_recurring_start | Unknown |  |
| is_billable | Unknown |  |
| is_productive | Unknown |  |
| key | Unknown |  |
| monthly_budget_billable_expense | Unknown |  |
| monthly_budget_billable_hour | Unknown |  |
| monthly_budget_mode | Unknown |  |
| monthly_budget_non_billable_expense | Unknown |  |
| monthly_budget_non_billable_hour | Unknown |  |
| monthly_budget_other_revenue | Unknown |  |
| monthly_budget_revenue | Unknown |  |
| monthly_budget_services_revenue | Unknown |  |
| name | Unknown |  |
| notes | Unknown |  |
| po_number | Unknown |  |
| project_type_id | Unknown |  |
| project_type_name | Unknown |  |
| record_status_id | Unknown |  |
| requires_notes | Unknown |  |
| requires_tasks | Unknown |  |
| revenue_recognition_method | Unknown |  |
| start | Unknown |  |
| status_id | Unknown |  |
| use_budget | Unknown |  |
| use_monthly_budget | Unknown |  |
| use_roles | Unknown |  |

### practice

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| created_at | Unknown |  |
| is_active | Unknown |  |
| name | Unknown |  |

### project_task_tag

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| project_task_id | Unknown | PK, FK |
| name | Unknown |  |

### project_task_role

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| project_task_id | Unknown | PK, FK |
| hours | Unknown |  |
| name | Unknown |  |

### project_task

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| client_id | Unknown | FK |
| member_id | Unknown | FK |
| project_id | Unknown | FK |
| budgeted_hours | Unknown |  |
| budgeted_services_revenue | Unknown |  |
| cap_assigned_hours | Unknown |  |
| cap_hours | Unknown |  |
| code | Unknown |  |
| created_at | Unknown |  |
| ends | Unknown |  |
| for_assigned_only | Unknown |  |
| is_billable | Unknown |  |
| lock_time | Unknown |  |
| name | Unknown |  |
| notes | Unknown |  |
| orders | Unknown |  |
| project_member_hour | Unknown |  |
| project_member_id | Unknown |  |
| require_notes | Unknown |  |
| start | Unknown |  |
| status_id | Unknown |  |

### allocation

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| client_id | Unknown | FK |
| member_id | Unknown | FK |
| project_id | Unknown | FK |
| role_id | Unknown | FK |
| allocate_on_time_off_days | Unknown |  |
| assignment_type_id | Unknown |  |
| created_at | Unknown |  |
| ends | Unknown |  |
| entity | Unknown |  |
| hours_per_allocation | Unknown |  |
| hours_per_day | Unknown |  |
| hours_per_month | Unknown |  |
| hours_per_week | Unknown |  |
| hours_ratio_of_capacity | Unknown |  |
| is_billable | Unknown |  |
| notes | Unknown |  |
| placeholder_id | Unknown |  |
| placeholder_name | Unknown |  |
| read_only | Unknown |  |
| resource_type_id | Unknown |  |
| role_name | Unknown |  |
| start | Unknown |  |
| task_id | Unknown |  |
| task_name | Unknown |  |
| time_off_type_id | Unknown |  |
| time_off_type_name | Unknown |  |
| total_hours | Unknown |  |
| unit | Unknown |  |

### client_email

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| client_id | Unknown | PK, FK |
| email | Unknown |  |

### client_tag

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| client_id | Unknown | PK, FK |
| name | Unknown |  |

### client

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| practice_id | Unknown | FK |
| code | Unknown |  |
| created_at | Unknown |  |
| currency | Unknown |  |
| invoice_notes | Unknown |  |
| is_internal | Unknown |  |
| key | Unknown |  |
| name | Unknown |  |
| notes | Unknown |  |
| owner_id | Unknown |  |
| owner_name | Unknown |  |
| payment_terms_id | Unknown |  |
| record_status_id | Unknown |  |
| street_address | Unknown |  |
| use_workspace_invoice_details | Unknown |  |

### member_tag

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| member_id | Unknown | PK, FK |
| name | Unknown |  |

### member_skill

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| member_id | Unknown | PK, FK |
| name | Unknown |  |

### member_availability_period_hour_per_day

| Column | Type | Keys |
| --- | --- | --- |
| index | Unknown | PK |
| member_availability_period_id | Unknown | PK, FK |
| member_id | Unknown | PK, FK |
| hour_per_day | Unknown |  |

### member_availability_period

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| member_id | Unknown | PK, FK |
| ends | Unknown |  |
| start | Unknown |  |

### member_cost_period

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| member_id | Unknown | PK, FK |
| cost_per_hour | Unknown |  |
| currency | Unknown |  |
| ends | Unknown |  |
| overhead_cost_per_hour | Unknown |  |
| start | Unknown |  |
| total_cost_per_hour | Unknown |  |

### member_utilization_target_period

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| member_id | Unknown | PK, FK |
| currency | Unknown |  |
| ends | Unknown |  |
| start | Unknown |  |
| target_percentage | Unknown |  |

### member

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| location_id | Unknown | FK |
| practice_id | Unknown | FK |
| active_end_date | Unknown |  |
| active_start_date | Unknown |  |
| cost_method_id | Unknown |  |
| created_at | Unknown |  |
| default_rate | Unknown |  |
| default_rate_currency | Unknown |  |
| discipline_id | Unknown |  |
| discipline_name | Unknown |  |
| email | Unknown |  |
| employment_type_id | Unknown |  |
| forbid_timesheet_submission_when_below_capacity | Unknown |  |
| holiday_schedule_id | Unknown |  |
| holiday_schedule_name | Unknown |  |
| internal_id | Unknown |  |
| internal_notes | Unknown |  |
| invitation_status_id | Unknown |  |
| is_active | Unknown |  |
| is_billable | Unknown |  |
| job_title_id | Unknown |  |
| job_title_name | Unknown |  |
| login_enabled | Unknown |  |
| manager_id | Unknown |  |
| manager_name | Unknown |  |
| name | Unknown |  |
| receive_missing_time_reminders | Unknown |  |
| security_role_id | Unknown |  |
| security_role_name | Unknown |  |
| time_off_allowed | Unknown |  |
| time_off_approval_mode | Unknown |  |
| time_off_approver_id | Unknown |  |
| time_off_approver_name | Unknown |  |
| unsubmitted_timesheet_reminders | Unknown |  |

### time_entry

| Column | Type | Keys |
| --- | --- | --- |
| id | Unknown | PK |
| client_id | Unknown | FK |
| member_id | Unknown | FK |
| project_id | Unknown | FK |
| role_id | Unknown | FK |
| created_at | Unknown |  |
| date | Unknown |  |
| invoice_id | Unknown |  |
| invoice_number | Unknown |  |
| invoiced | Unknown |  |
| is_billable | Unknown |  |
| minutes | Unknown |  |
| notes | Unknown |  |
| role_name | Unknown |  |
| status_id | Unknown |  |
| task_id | Unknown |  |
| task_name | Unknown |  |
| time_off_type_id | Unknown |  |
| time_off_type_name | Unknown |  |
| timer_started_at | Unknown |  |
| type_id | Unknown |  |

## Relationships

- project_tag(project_id) → project(id)
- project(practice_id) → practice(id)
- project(client_id) → client(id)
- project_task_tag(project_task_id) → project_task(id)
- project_task_role(project_task_id) → project_task(id)
- project_task(member_id) → member(id)
- project_task(project_id) → project(id)
- project_task(client_id) → client(id)
- allocation(member_id) → member(id)
- allocation(project_id) → project(id)
- allocation(client_id) → client(id)
- allocation(role_id) → project_task_role(id)
- client_email(client_id) → client(id)
- client_tag(client_id) → client(id)
- client(practice_id) → practice(id)
- member_tag(member_id) → member(id)
- member_skill(member_id) → member(id)
- member_availability_period_hour_per_day(member_availability_period_id) → member_availability_period(id)
- member_availability_period_hour_per_day(member_id) → member_availability_period(member_id)
- member_availability_period(member_id) → member(id)
- member_cost_period(member_id) → member(id)
- member_utilization_target_period(member_id) → member(id)
- member(practice_id) → practice(id)
- member(location_id) → location(id)
- time_entry(member_id) → member(id)
- time_entry(project_id) → project(id)
- time_entry(client_id) → client(id)
- time_entry(role_id) → project_task_role(id)
