PostgreSQL JDBC driver does not support array syntax for storing songs. This means that the originally proposed method of maintaining order on the playlists, as an array of SongID integers for each playlist, will not work with the Java interface.
A number of solutions were proposed for maintaining ordering of the playlist. The simplest is to simply special-case the implementation of the global playlist, and not store ordering for the user playlists. We will discuss this option with our client, in case the alternatives don't work.
On proposed set of solutions to the problem revolved around storing a position index for each song within a playlist in the database. While this works, managing updates of the ordering becomes difficult and inefficient - the best solution proposed by Prof. Hodas was to delete all songs within the playlist, and then re-insert them with new position indexes.
The solution we have settled on for the moment is to concurrently store the ordering information in a flat file on a per-playlist basis, which is synchronized with the database (which does not store ordering information at all) on every update.