Playlist songs¶
The songs in the one synchronized playlist, called VeeJay.
This page is the dictionary for the table. It holds the definition and purpose of every field, and it is where a field is changed.
Fields¶
| Field | Key | Type | Required | Allowed values or link | Definition | Purpose | Notes |
|---|---|---|---|---|---|---|---|
Song |
PLAYLIST_SONGS.SONG |
Link to one row | Yes | Row of Songs | A link to the Songs row. The playlist is a list of songs, and each platform shows the song in the best form that it supports. | Keeps one list of songs for every platform. | |
Position |
PLAYLIST_SONGS.POSITION |
Whole number | Yes | The place of the song in the playlist, counted from 1. | Keeps the order on the platforms that can keep one. | ||
Added_Time |
PLAYLIST_SONGS.ADDED_TIME |
Date and time (UTC) | Yes | The moment the song was added to the playlist. | Lets the most recent change win when two copies disagree, and breaks a tie in Position. |
Constraints¶
What the database enforces on each field, beyond its type. A field that is not listed has no default, no uniqueness, no range and no reference. Every field marked Required is NOT NULL.
| Field | Default | Unique | Range or pattern | Refers to |
|---|---|---|---|---|
Song |
Yes | core_Songs | ||
Position |
1 or more | |||
Added_Time |
a real instant, YYYY-MM-DDTHH:MM:SSZ |
Rules across fields:
- A song appears once in the playlist: Song is unique.
- Position is not unique. SQLite cannot defer a unique check, so moving a song would be refused halfway. The program keeps the order consistent, and a tie is broken by Added_Time.
The table is core_Playlist_Songs. Every link refuses a missing target and refuses the deletion of a row that another row still points to.