Table: ndb.specimens#
Description#
No description available in database.
TODO: Expand this description with: - What data does this table store? - What is the business/research purpose? - How is this data collected or generated? - Are there any important caveats or data quality issues?
Table Structure#
Schema: ndb | Table Comment: No description available
Statistics#
| Metric | Value |
|---|---|
| Row Count | 3,658 |
| Total Size | 464 kB |
| Table Size | 336 kB |
| Indexes Size | 96 kB |
Relationships#
Primary Key: specimenid
Foreign Keys:
dataid→data.dataidmaturityid→elementmaturities.maturityidportionid→elementportions.portionidsymmetryid→elementsymmetries.symmetryidelementtypeid→elementtypes.elementtypeidrepositoryid→repositoryinstitutions.repositoryiddomesticstatusid→specimendomesticstatustypes.domesticstatusidsexid→specimensextypes.sexid
Referenced By:
TODO: Document which tables reference this table (will be auto-detected in validation).
Data Dictionary#
| Column | Type | Nullable | Default | Constraints | Description |
|---|---|---|---|---|---|
specimenid |
integer | ✗ | nextval('ndb.seq_specimens_... |
PRIMARY KEY | |
dataid |
integer | ✗ | - |
FOREIGN KEY | |
elementtypeid |
integer | ✓ | - |
FOREIGN KEY | |
symmetryid |
integer | ✓ | - |
FOREIGN KEY | |
portionid |
integer | ✓ | - |
FOREIGN KEY | |
maturityid |
integer | ✓ | - |
FOREIGN KEY | |
sexid |
integer | ✓ | - |
FOREIGN KEY | |
domesticstatusid |
integer | ✓ | - |
FOREIGN KEY | |
preservative |
character varying(256) | ✓ | - |
- | |
nisp |
double precision | ✓ | - |
- | |
repositoryid |
integer | ✓ | - |
FOREIGN KEY | |
specimennr |
character varying(50) | ✓ | - |
- | |
fieldnr |
character varying(50) | ✓ | - |
- | |
arctosnr |
character varying(50) | ✓ | - |
- | |
notes |
text | ✓ | - |
- | |
recdatecreated |
timestamp without time zone | ✗ | timezone('UTC'::text, now()) |
- | |
recdatemodified |
timestamp without time zone | ✗ | - |
- |
TODO: Review column descriptions and add comments where missing.
Usage Examples#
Example 1: Basic Selection#
Purpose: Retrieve the 10 most recent records from specimens
Example 2: Count Records#
Purpose: Get the total number of records in specimens
Example 3: Filter by Date Range#
-- Get records within a date range
SELECT *
FROM specimens
WHERE recdatecreated >= '2024-01-01'
AND recdatecreated < '2025-01-01'
ORDER BY recdatecreated DESC;
Purpose: Retrieve records from specimens within a specific date range
Example 4: Join with data#
-- Join with related table
SELECT
t1.*,
t2.*
FROM specimens t1
INNER JOIN data t2
ON t1.dataid = t2.dataid
LIMIT 100;
Purpose: Retrieve specimens records with related data from data
Example 5: Aggregate Data#
-- Aggregate records by dataid
SELECT
dataid,
COUNT(*) as count
FROM specimens
GROUP BY dataid
ORDER BY count DESC
LIMIT 10;
Purpose: Count records grouped by dataid
TODO: Add more specific examples relevant to common research questions or operational tasks.
Data Quality Notes#
TODO: Document: - Known data quality issues - Validation rules - Expected data ranges - Update frequency and mechanisms - Any ETL processes that populate this table
Maintenance#
- Data Owner: TODO: Assign owner
- Update Frequency: TODO: Document frequency
- Last Major Schema Change: TODO: Document when schema last changed
Related Documentation#
TODO: Link to: - Related API endpoints - Data collection procedures - Analysis notebooks or reports that use this table - External ontologies or standards