User Tools

Site Tools


newdevs:checklist:tables-columns

New Developers Working Group

Checklist for Adding Tables and Columns to Evergreen

Here is a list of factors to consider when adding new tables and columns/fields.

Tables

  • Table creation is included in seed scripts
    • Including any required seed data
  • Table creation is included in schema update
    • Including any required seed data
  • Table is added to fm_IDL.xml
    • As needed for reporting
    • As needed for CStore
    • As needed for PCRUD with appropriate permissions
    • With appropriate cardinality
    • With links that reflect relationships with other IDL classes
    • With columns that are intended for localization flagged as such
  • Decision regarding whether the table supports logical deletion or true deletion made thoughtfully
  • PII is handled thoughtfully
    • Reason for storing additional PII is documented
  • Foreign keys are added thoughtfully
    • With reason for behavior on update
    • With reason for behavior on delete
    • With appropriate indexes if cascading updates or deletions are permitted
  • Foreign keys linking to actor.usr include…
    • … appropriate action in actor.usr_delete_data()
    • … appropriate action in actor.usr_merge()
  • Indexes are added thoughtfully
  • Appropriate sample data is included in Concerto

Columns

  • New column does not unnecessarily require a full rewrite of a large table during upgrade
  • Column creation is included in seed scripts
    • Including any required seed data
  • Column creation is included in schema update
    • Including any required seed data
  • fm_IDL.xml is updated
    • With links that reflect relationships with other IDL classes
    • With columns that are intended for localization flagged as such
  • PII is handled thoughtfully
    • Reason for storing additional PII is documented
  • Foreign keys are added thoughtfully
    • With reason for behavior on update
    • With reason for behavior on delete
    • With appropriate indexes if cascading updates or deletions are permitted
  • Foreign keys linking to actor.usr include…
    • … appropriate action in actor.usr_delete_data()
    • … appropriate action in actor.usr_merge()
  • Indexes are added thoughtfully
  • Appropriate sample data is included in Concerto
newdevs/checklist/tables-columns.txt · Last modified: 2025/03/17 17:53 by tmccanna

Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International
CC Attribution-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki

© 2008-2022 GPLS and others. Evergreen is open source software, freely licensed under GNU GPLv2 or later.
The Evergreen Project is a U.S. 501(c)3 non-profit organization.