ਡਾਟਾ ਮਾਡਲ
bae ਦੀ ਸੂਚੀ ਸਧਾਰਨ SQLite ਹੈ, coven ਨੂੰ ਸਾਰਣੀ-ਦਰ-ਸਾਰਣੀ ਘੋਸ਼ਿਤ: ਸਮਕਾਲੀ ਸਾਰਣੀਆਂ ਹਰ ਉਸ ਯੰਤਰ ਤੱਕ ਜਾਂਦੀਆਂ ਹਨ ਜੋ ਉਨ੍ਹਾਂ ਨੂੰ ਪੜ੍ਹ ਸਕਦਾ ਹੈ; ਨਾ-ਘੋਸ਼ਿਤ ਸਾਰਣੀਆਂ ਯੰਤਰ ਨਹੀਂ ਛੱਡਦੀਆਂ। ਇਹ ਵੰਡ ਡਾਟਾ ਮਾਡਲ ਦਾ ਸਭ ਤੋਂ ਅਹਿਮ ਫੈਸਲਾ ਹੈ, ਇਸ ਲਈ ਇਹ ਪੰਨਾ ਇਸਦੇ ਦੁਆਲੇ ਬਣਿਆ ਹੈ।
ਸੂਚੀ ਗ੍ਰਾਫ
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕਸਕੀਮਾ ਦਾ ਸਮਕਾਲੀਕਰਿਤ heart:
artists,albums,works: grouping layer। ਐਲਬਮ ਆਪਣੀਆਂ ਰਿਲੀਜ਼ਾਂ ਜੋੜਦੀ ਹੈ ਅਤੇ primary ਇੱਕ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ ਹੈ; works ਸ਼ਾਸਤਰੀ ਬਣਤਰ ਲਈ parent/child ਗ੍ਰਾਫ ਬਣਾਉਂਦੀਆਂ ਹਨ।- **
releases**: ਕੇਂਦਰੀ ਇਕਾਈ, ਹਰੇਕ ਆਯਾਤ ਕੀਤੀ ਨਕਲ ਲਈ ਇੱਕ ਕਤਾਰ । ਦਬਾਉਣ ਦੇ ਵੇਰਵੇ (ਲੇਬਲ, ਕੈਟਾਲਾਗ ਨੰਬਰ, ਬਾਰਕੋਡ, ਦੇਸ਼, ਫਾਰਮੈਟ, ਸਾਲ), ਚੋਣਵੀਂ ਮੇਟਾਡਾਟਾ ਸਰੋਤ, ਇੰਪੋਰਟ ਫੋਲਡਰ ਦਾ ਸਮੱਗਰੀ ਹੈਸ਼, ਅਤੇ ਮਾਪਿਆ ਐਲਬਮ ਆਵਾਜ਼ ਰੱਖਦਾ ਹੈ । ਕੋਈ ਸਰੋਤ ਨਹੀਂ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਮੇਟਾਡਾਟਾ ਸਿੱਧਾ ਦਿੱਤਾ ਗਿਆ ਹੈ; ਬਾਹਰੀ ਸਰੋਤ ਦਾ ਨਾਂ ਸਹੀ ਸਰੋਤ ਰਿਲੀਜ਼ ਹੈ, ਜਦੋਂ ਕਿ ਫਾਈਲ ਟੈਗ ਇੱਕ ਲੋਕਲ ਸਨੈਪਸ਼ਾਟ ਸਰੋਤ ਰਿਕਾਰਡ ਕਰਦਾ ਹੈ । - **
release_identities**: ਇੱਕ ਰਿਲੀਜ਼ * ਹੈ * ਲਈ ਸਹੀ ਬਾਹਰੀ ਪਛਾਣ ਹੈ। ਕੋਈ ਕਤਾਰ ਨਹੀਂ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਕੋਈ ਬਾਹਰੀ ਪਛਾਣ ਨਹੀਂ ਹੈ। ਹਰੇਕ ਕਤਾਰ ਦਾ ਨਾਂ ਇੱਕ MusicBrainz ਜਾਂ Discogs ਰਿਲੀਜ਼ ਅਤੇ ਰਿਲੀਜ਼ ਗਰੁੱਪ ਹੈ, ਅਤੇ ਇੱਕ ਰਿਲੀਜ਼ ਦੋਹਾਂ ਸਰੋਤਾਂ ਵਿੱਚ ਪਛਾਣ ਰੱਖ ਸਕਦਾ ਹੈ। ਇਹ ਪਰੋਵਿਨੈਂਸ ਤੋਂ ਵੱਖਰਾ ਹੈ: ਪਛਾਣ ਬਿਨਾਂ ਇਸ ਦਾ ਦਾਅਵੇ ਕੀਤੇ ਬਦਲ ਸਕਦੀ ਹੈ ਕਿ ਮੌਜੂਦਾ ਸੋਧਯੋਗ ਮੇਟਾਡਾਟਾ ਉਸ ਸਰੋਤ ਤੋਂ ਮੁੜ- ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ। tracksਨਾਲtrack_artists, ਨਾਲੇrelease_artist_rolesਅਤੇtrack_artist_roles: ਟ੍ਰੈਕ lists ਅਤੇ credits, ਹਰ credit ਆਪਣੇ ਸਰੋਤ ਨਾਲ ਚਿੰਨ੍ਹਿਤ।track_works,work_parts,work_artists: ਰਿਕਾਰਡਿੰਗਾਂ ਉਹਨਾਂ works ਨਾਲ ਜੁੜੀਆਂ ਜਿਨ੍ਹਾਂ ਨੂੰ ਉਹ ਪੇਸ਼ ਕਰਦੀਆਂ ਹਨ।audio_formatsਅਤੇaudio_format_segments: playback ਵਿਸ਼ੇਸ਼ਣ। ਹਰ ਟ੍ਰੈਕ ਲਈ: codec, ਨਮੂਨਾ ਦਰ, ਬਿਟ ਗਹਿਰਾਈ, channels, ਮਾਪਿਆ loudness ਅਤੇ peak, ਅਤੇ pregap lengths। ਖੰਡ ਟ੍ਰੈਕ ਨੂੰ ਉਸ ਦੀਆਂ ਸਰੋਤ ਫਾਈਲਾਂ ਦੇ ਕ੍ਰਮਬੱਧ ਬਾਈਟ ਅਤੇ ਨਮੂਨਾ windows ਉੱਤੇ ਨਕਸ਼ਾ ਕਰਦੇ ਕਰਦੇ ਹਨ, ਇਸ ਕਰਕੇ CUE rip ਦਾ ਟ੍ਰੈਕ, pregap ਸਮੇਤ, ਇੱਕ ਵੱਡੀ ਫਾਈਲ ਦੇ ਖੇਤਰਾਂ ਜਾਂ ਕਈ ਫਾਈਲਾਂ ਵਿੱਚ ਫੈਲ ਕਰ ਸਕਦਾ ਹੈ।release_files,covers,artist_images: ਬਲੌਬ-bearing ਟੇਬਲਾਂ। ਕਤਾਰਾਂ ਸੂਚੀ ਦਾਖਲੇ ਹਨ; bytes coven ਦੇ ਬਲੌਬ layer ਵਿੱਚ ਰਹਿੰਦੇ ਹਨ (ਹੇਠਾਂ ਵੇਖੋ)।people,ratings,history,playlists,playlist_entries: ਹਰ ਵਿਅਕਤੀ ਦੀ profile ਅਤੇ ਜੋ ਉਹ ਆਪਣੇ ਲਈ ਦਰਜ ਕਰਦਾ ਹੈ। ਇਹ owner ਸਾਰਣੀਆਂ ਹਨ: ਸਿਰਫ਼ ਇਨ੍ਹਾਂ ਦੇ ਲੇਖਕ ਦੇ ਯੰਤਰ ਇਨ੍ਹਾਂ ਨੂੰ ਬਦਲ ਸਕਦੇ ਹਨ।historyਅਤੇplaylistsਦੀ ਹਰ ਕਤਾਰ ਜਾਂ ਤਾਂ ਘਰ ਦੇ ਸਾਂਝੇ store ਵਿੱਚ ਜਾਂ ਵਿਅਕਤੀ ਦੇ ਨਿੱਜੀ circle ਵਿੱਚ ਰਹਿੰਦੀ ਹੈ।
ਸਮਕਾਲੀ ਅਤੇ ਸਥਾਨਕ
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕਉੱਪਰਲੀ ਹਰ ਸਾਰਣੀ ਬਿਨਾਂ ਸ਼ਰਤ ਸਮਕਾਲੀ ਹੁੰਦੀ ਹੈ: ਸਥਾਨਕ ਰਿਲੀਜ਼ ਦੀਆਂ ਕਤਾਰਾਂ ਕਿਸੇ ਹੋਰ ਰਿਲੀਜ਼ ਵਾਂਗ ਹਰ ਯੰਤਰ ਤੱਕ ਪਹੁੰਚਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਹਰ ਯੰਤਰ ਜਾਣਦਾ ਹੈ ਕਿ ਘਰ ਕੋਲ ਕੀ ਹੈ, ਅਤੇ ਸਥਾਨਕ ਰਿਲੀਜ਼ ਦੇ ਟਰੈਕ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ rating ਜਾਂ playlist entry ਅਜਿਹੀ ਕਤਾਰ ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ ਹੈ ਜੋ ਹਰ ਯੰਤਰ ਪੜ੍ਹ ਸਕਦਾ ਹੈ। ਸਿਰਫ਼ ਰਿਲੀਜ਼ ਦਾ ਸ਼ਬਦ, ਅਤੇ ਉਹ ਮਾਰਗ ਜਿੱਥੇ ਉਹ ਹੈ, ਆਯਾਤ ਕਰਨ ਵਾਲੇ ਯੰਤਰ ਉੱਤੇ ਰਹਿੰਦੇ ਹਨ। ਹਰ ਸਾਰਣੀ ਆਪਣੀ ਕਤਾਰ-ਪਛਾਣ, ਪਾਠਕਾਂ, owner ਸਾਰਣੀ ਹੈ ਜਾਂ ਨਹੀਂ, ਅਤੇ ਜੋ ਫਾਈਲਾਂ ਉਹ ਰੱਖਦੀ ਹੈ ਉਨ੍ਹਾਂ ਨਾਲ ਘੋਸ਼ਿਤ ਹੁੰਦੀ ਹੈ; ਇੱਕ test ਘੋਸ਼ਣਾਵਾਂ ਨੂੰ ਬਿਲਕੁਲ ਇਸ ਸੂਚੀ ਉੱਤੇ ਰੱਖਦਾ ਹੈ।
ਪੂਰੀ ਤਰ੍ਹਾਂ ਸਥਾਨਕ ਟੇਬਲਾਂ, coven ਨੂੰ ਕਦੇ ਘੋਸ਼ਿਤ ਨਹੀਂ:
playback_state: current ਟ੍ਰੈਕ, ਸਥਿਤੀ, ਕਤਾਰ, ਆਵਾਜ਼ ਮਾਤਰਾ, shuffle ਅਤੇ repeat। Playback ਯੰਤਰ fact ਹੈ।- ਸਕੈਨ ਅਤੇ ਆਯਾਤ ਸਾਰਣੀਆਂ: ਨਿਗਰਾਨੀ ਹੇਠ ਫੋਲਡਰ, ਸਕੈਨ, ਆਯਾਤ ਉਮੀਦਵਾਰ ਅਤੇ ਉਨ੍ਹਾਂ ਦੇ ਖਰੜੇ।
source_releaseਅਤੇ ਉਸਦੇ ਹੇਠਲੇ tables: bae ਵੱਲੋਂ ਲਿਆਂਦੀ ਹਰ MusicBrainz ਅਤੇ Discogs release ਵਿੱਚੋਂ ਕੱਢਿਆ ਗਿਆ — album ਅਤੇ pressing ਦੀ ਜਾਣਕਾਰੀ, credits ਅਤੇ works ਸਮੇਤ ਪੂਰੀ tracklist, cover ਦੇ ਵਿਕਲਪ, ਅਤੇ ਹੋਰ catalogs ਉਸਨੂੰ ਕੀ ਕਹਿੰਦੇ ਹਨ — ਇੱਕ ਲੋਕਲ ਰਿਲੀਜ਼ ਦੀ ਬਜਾਏ ਪਰੋਵਾਈਡਰ ਰਿਲੀਜ਼ ਨਾਲ ਕੁੰਜੀ ਕੀਤੀ ਗਈ ਹੈ। ਕੱਚਾ JSON ਨਹੀਂ ਰੱਖਿਆ ਜਾਂਦਾ; ਕੋਈ ਵੀ ਡਿਵਾਈਸ release ਦੁਬਾਰਾ ਲਿਆ ਸਕਦੀ ਹੈ।local_release_files: ਇਸ ਯੰਤਰ ਉੱਤੇ ਸਥਾਨਕ ਰਿਲੀਜ਼ ਦੇ ਫਾਈਲ ਮਾਰਗ ਅਤੇ ਤਬਦੀਲੀ ਸਮੇਂ।local_history: ਇਸ ਯੰਤਰ ਦੇ ਵਿਅਕਤੀ ਦੀ profile ਬਣਨ ਤੋਂ ਪਹਿਲਾਂ ਦੀਆਂ ਸੁਣਾਈਆਂ, ਜੋ profile ਬਣਨ ਉੱਤੇ ਉਸਦੇ ਨਿੱਜੀ circle ਵਿੱਚ ਭੇਜੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।
ਦੋ ਯੰਤਰਾਂ ਦੀਆਂ ਸੋਧਾਂ cell-ਦਰ-cell ਮਿਲਦੀਆਂ ਹਨ, ਦੋਵਾਂ ਵੱਲੋਂ ਬਦਲੇ cell ਵਿੱਚ ਬਾਅਦਲੀ ਸੋਧ ਜਿੱਤਦੀ ਹੈ। coven ਮਿਲਾਉਣ ਦਾ ਹਿਸਾਬ ਆਪਣੀਆਂ ਸਾਰਣੀਆਂ ਵਿੱਚ ਰੱਖਦਾ ਹੈ, ਇਸ ਲਈ bae ਦੀਆਂ ਸਾਰਣੀਆਂ ਵਿੱਚ clock ਕਾਲਮ ਨਹੀਂ ਹਨ।
ਬਲੌਬ
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕਸ਼ਬਦ ਅਤੇ ਤਸਵੀਰਾਂ coven ਫਾਈਲਾਂ ਹਨ, ਹਰ ਕਿਸਮ ਇੱਕ ਨਾਮ-ਖੇਤਰ ਹੈ ਜਿਸਦੀ ਆਪਣੀ ਯੰਤਰ ਅਸਥਾਈ ਭੰਡਾਰ ਹੱਦ ਹੈ: release_files (20 GiB), covers (512 MiB), artist_images (256 MiB), ਅਤੇ avatars (64 MiB)। ਕਤਾਰ ਆਪਣੀ ਫਾਈਲ ਨੂੰ coven ਫਾਈਲ ਦੀ id ਨਾਲ ਦਰਸਾਉਂਦੀ ਹੈ: release_files, covers ਅਤੇ artist_images ਉੱਤੇ file, ਅਤੇ people ਉੱਤੇ avatar_id। ਫਾਈਲ ਦਾ ਆਕਾਰ, ਸਮੱਗਰੀ hash ਅਤੇ ਟਿਕਾਣਾ coven ਦੇ ਹਨ, ਜੋ coven_files ਨਾਲ ਜੋੜ ਕੇ ਪੜ੍ਹੇ ਜਾਂਦੇ ਹਨ।
ਰਿਲੀਜ਼ ਫਾਈਲਾਂ ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਹਨ: ਸਥਾਨਕ ਰਿਲੀਜ਼ ਦੀਆਂ ਫਾਈਲਾਂ ਵਰਤੋਂਕਾਰ ਦੀਆਂ ਆਪਣੀਆਂ ਫਾਈਲਾਂ ਹਨ ਆਪਣੇ ਮੂਲ ਮਾਰਗਾਂ ਉੱਤੇ, local_release_files ਵਿੱਚ ਦਰਜ, ਅਤੇ ਉਸਦੀਆਂ ਕਤਾਰਾਂ ਕਿਸੇ coven ਫਾਈਲ ਨੂੰ ਨਹੀਂ ਦਰਸਾਉਂਦੀਆਂ। ਰਿਲੀਜ਼ ਨੂੰ ਕਲਾਉਡ ਵਿੱਚ ਭੇਜਣਾ ਇੱਕੋ ਲਿਖਤ ਵਿੱਚ ਹਰ ਫਾਈਲ ਨੂੰ coven ਵਿੱਚ ਤਿਆਰ ਕਰਦਾ ਹੈ ਅਤੇ ਹਰ ਕਤਾਰ ਨੂੰ ਉਸਦੀ ਫਾਈਲ ਵੱਲ ਸੇਧਦਾ ਹੈ; ਆਖਰੀ ਫਾਈਲ ਰੱਖੀ ਜਾਂਦੇ ਹੀ coven ਸਭ ਨੂੰ ਇਕੱਠੇ ਕਲਾਉਡ ਉੱਤੇ ਬਦਲ ਦਿੰਦਾ ਹੈ, ਅਤੇ ਹੋਰ ਯੰਤਰ ਪਹਿਲੀ ਪੜ੍ਹਤ ਵੇਲੇ ਹਰ ਇੱਕ ਨੂੰ ਅਸਥਾਈ ਭੰਡਾਰ ਵਿੱਚ ਲਿਆਉਂਦੇ ਹਨ। ਕਵਰ, ਕਲਾਕਾਰ ਤਸਵੀਰਾਂ ਅਤੇ avatars bae ਦੇ ਹਨ: bae bytes ਬਣਾਉਂਦਾ ਹੈ (ਕਵਰ ਵੱਧ ਤੋਂ ਵੱਧ 600px ਚੌੜੇ JPEG thumbnails ਵਜੋਂ ਮੁੜ ਬਣਦੇ ਹਨ), ਅਤੇ ਯੰਤਰ ਹਰ ਇੱਕ ਨੂੰ ਪਹਿਲੀ ਵਾਰ ਦਿਖਾਏ ਜਾਣ ਵੇਲੇ ਲਿਆਉਂਦਾ ਹੈ ਅਤੇ ਉਦੋਂ ਤੱਕ ਰੱਖਦਾ ਹੈ ਜਦੋਂ ਤੱਕ ਉਸਦੇ ਨਾਮ-ਖੇਤਰ ਦੀ ਹੱਦ ਉਸਨੂੰ ਕੱਢ ਨਾ ਦੇਵੇ।
ਹਰ ਫਾਈਲ ਬੇਤਰਤੀਬ ਨਾਂ ਹੇਠ ਇਨਕ੍ਰਿਪਟ ਹੋ ਕੇ ਚੜ੍ਹਦੀ ਹੈ, ਉਸ ਮਾਰਗ ਉੱਤੇ ਜੋ ਉਸਦੇ ਤਿਆਰ ਹੋਣ ਵੇਲੇ ਤੈਅ ਹੁੰਦਾ ਹੈ, ਇਸ ਲਈ ਬਾਅਦ ਵਿੱਚ ਨਾਂ ਬਦਲਣ ਨਾਲ ਵਸਤੂ ਨਹੀਂ ਹਿੱਲਦੀ। ਫਾਈਲ ਦੇ bytes ਕਦੇ ਨਹੀਂ ਬਦਲਦੇ: ਨਵੀਂ ਤਸਵੀਰ ਨਵੀਂ ਫਾਈਲ ਹੈ।
Rip ਦੀ ਪਛਾਣ
ਇਸ ਭਾਗ ਦਾ ਲਿੰਕਹਰ ਆਯਾਤ ਨਵੀਂ ਬੇਤਰਤੀਬ ਪਛਾਣ ਅਤੇ ਆਪਣੇ ਟਰੈਕ ਤੇ ਫਾਈਲ ਰਿਕਾਰਡਾਂ ਵਾਲੀ ਰਿਲੀਜ਼ ਬਣਾਉਂਦੀ ਹੈ। ਹਰ ਡਿਵਾਈਸ local_release_origin ਵਿੱਚ ਆਪਣੀ ਹਰ ਆਯਾਤ ਵੱਲੋਂ ਪੜ੍ਹੀਆਂ ਫਾਈਲਾਂ ਦੇ ਕ੍ਰਮਬੱਧ ਸਬੰਧਤ ਮਾਰਗਾਂ, ਆਕਾਰਾਂ ਅਤੇ ਬਦਲਾਅ ਦੇ ਸਮਿਆਂ ਦਾ SHA-256 ਦਰਜ ਕਰਦੀ ਹੈ; ਇਹ ਰਿਕਾਰਡ ਕਦੇ ਸਿੰਕ ਨਹੀਂ ਹੁੰਦਾ। ਜਿਸ ਫੋਲਡਰ ਦਾ ਹੈਸ਼ ਇਸ ਡਿਵਾਈਸ ਨੇ ਦਰਜ ਕੀਤਾ ਹੈ, ਉਹ ਕਿਤੇ ਵੀ ਲਿਜਾਇਆ ਜਾਵੇ, ਪੂਰੀਆਂ ਹੋਈਆਂ ਆਯਾਤਾਂ ਵਾਲੇ ਟੈਬ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ, ਅਤੇ ਉਸਦੀ ਕਤਾਰ ਉਸ ਤੋਂ ਆਯਾਤ ਕੀਤੀ ਇਕਲੌਤੀ ਰਿਲੀਜ਼ ਦਾ ਨਾਮ ਦੱਸਦੀ ਹੈ। ਉਸੇ ਡਿਵਾਈਸ ’ਤੇ ਉਹੀ ਫਾਈਲਾਂ ਮੁੜ ਆਯਾਤ ਕਰਨਾ ਅਸਫਲ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਪੂਰੀਆਂ ਹੋਈਆਂ ਆਯਾਤਾਂ ਵਾਲੇ ਟੈਬ ਵਿੱਚ ਮੁੜ ਆਯਾਤ ਦੀ ਕਾਰਵਾਈ ਨਹੀਂ ਹੁੰਦੀ।