| | 73 | === 2NF Check |
| | 74 | Every table that has a simple (non-composite) primary key is already in 2NF, so we only need to check the tables that have composite keys. |
| | 75 | STATUS {story_id, status} → There are no other attributes, so it satisfies 2NF. |
| | 76 | CONTENT_TYPE {notification_id, content_type} → There are no other attributes, so it satisfies 2NF. |
| | 77 | SUGGESTION_TYPE {suggestion_id, suggestion_type} → There are no other attributes, so it satisfies 2NF. |
| | 78 | LIKES {user_id, story_id} → like_created_at depends on {user_id, story_id} together, so it satisfies 2NF. |
| | 79 | COLLABORATION {user_id, story_id} → collab_created_at depends on {user_id, story_id} together, so it satisfies 2NF. |
| | 80 | ROLES {user_id, story_id, roles} → There are no other attributes, so it satisfies 2NF. |
| | 81 | PERMISSION_LEVEL {user_id, story_id, permission_level} → There are no other attributes, so it satisfies 2NF. |
| | 82 | HAS_GENRE {story_id, genre_id} → There are no other attributes, so it satisfies 2NF. |
| | 83 | READING_LIST_ITEMS {list_id, story_id} → added_at depends on {list_id, story_id} together, so it satisfies 2NF. |
| | 84 | NOTIFY {user_id, story_id, notification_id} → There are no other attributes, so it satisfies 2NF. |
| | 85 | NEED_APPROVAL {suggestion_id, story_id, chapter_id} → There are no other attributes, so it satisfies 2NF. |
| | 86 | Since there are no partial dependencies in any of the tables, this schema satisfies 2NF. |