डेटा मांडणी
bae ची नोंदवही साधी SQLite आहे, coven ला सारणी-दर-सारणी घोषित केलेली: समक्रमित सारण्या त्या वाचू शकणाऱ्या प्रत्येक साधनावर जातात; न घोषित सारण्या साधन सोडत नाहीत. हा विभाग माहिती मांडणीतील सर्वात भारवाहक निर्णय आहे, म्हणून हे पृष्ठ त्याभोवती मांडले आहे.
नोंदवहीचा आलेख
या विभागाची लिंकआराखड्याचे समक्रमित केंद्र:
artists,albums,works: गटबद्धीकरण थर. अल्बम त्याच्या आवृत्त्या एकत्र करतो आणि प्राथमिक आवृत्तीकडे दाखवतो; रचना शास्त्रीय रचनेसाठी पालक/अपत्य आलेख बनवतात.- **
releases**: केंद्रीय घटक, आयात केलेल्या प्रत्येक प्रतीसाठी एक ओळ. दाबण्याची माहिती (लेबल, कॅटलॉग क्रमांक, बारकोड, देश, स्वरूप, वर्ष), वैकल्पिक मेटाडेटा स्रोत, आयात केलेले संचयीका विषयी हॅश, आणि मोजलेले अल्बम आवाज. स्रोत नाही म्हणजे मेटाडेटा थेट प्रविष्ट केले गेले आहे; बाह्य स्रोत निश्चित स्त्रोत रिलीजचे नाव आहे, तर फाइल टॅग स्थानीय स्नैपशॉट स्त्रोत नोंदवितो. - **
release_identities**: एक रिलीज * आहे * साठी अचूक बाह्य ओळख. ओळी नाही याचा अर्थ बाह्य ओळख नाही. प्रत्येक ओळ नाव MusicBrainz किंवा Discogs रिलीज आणि रिलीज गट आहे, आणि एक रिलीज दोन्ही स्त्रोतांमध्ये ओळख एकाच वेळी ठेवू शकते. हे provenance पासून वेगळे आहे: ओळख बदलू शकते, त्या स्त्रोतातून वर्तमान संपादनजोगी मेटाडेटा रीसेट केली गेली आहे असे म्हणत नाही. tracks,track_artists, तसेचrelease_artist_rolesआणिtrack_artist_roles: गाण्यांच्या याद्या आणि श्रेय, प्रत्येक श्रेय त्याच्या स्रोतासह खूण केलेले.track_works,work_parts,work_artists: ते सादर करतात त्या रचनांशी जोडलेली ध्वनिमुद्रणे.audio_formatsआणिaudio_format_segments: वाजवण्याचे तपशील. प्रत्येक गाणे: codec, नमुना दर, बिट खोली, वाहिन्या, मोजलेला मोठेपणा आणि शिखर, आणि pregap लांबी. भाग गाणे त्याच्या स्रोत संचिकांच्या क्रमबद्ध बाइट आणि नमुना खिडक्यांवर मांडतात, ज्यामुळे CUE rip चे गाणे, pregap सह, एका मोठ्या संचिकेच्या भागांत किंवा अनेक संचिकांमध्ये पसरू शकते.release_files,covers,artist_images: द्वयी वस्तू असलेल्या सारण्या. ओळी नोंदवही नोंदी आहेत; बाइट्स coven च्या द्वयी वस्तू थरात राहतात (खाली पहा).people,ratings,history,playlists,playlist_entries: प्रत्येक व्यक्तीचे प्रोफाइल आणि ती स्वतःसाठी जे नोंदवते ते. या मालक सारण्या आहेत: फक्त त्यांच्या लेखकाची साधने त्या बदलू शकतात.historyआणिplaylistsची प्रत्येक ओळ एकतर कुटुंबाच्या सामायिक store मध्ये किंवा त्या व्यक्तीच्या खाजगी वर्तुळात राहते.
समक्रमित आणि स्थानिक
या विभागाची लिंकवरील प्रत्येक सारणी बिनशर्त समक्रमित होते: स्थानिक आवृत्तीच्या ओळी इतर कोणत्याही आवृत्तीसारख्याच प्रत्येक साधनावर पोहोचतात, त्यामुळे कुटुंबाकडे काय आहे हे प्रत्येक साधनाला माहीत असते, आणि स्थानिक आवृत्तीच्या गाण्याकडे निर्देश करणारे मानांकन किंवा प्लेलिस्ट नोंद अशा ओळीकडे निर्देश करते जी प्रत्येक साधन वाचू शकते. फक्त आवृत्तीचा ध्वनी, आणि तो ज्या मार्गांवर आहे ते, आयात करणाऱ्या साधनावर राहतात. प्रत्येक सारणी तिची ओळ-ओळख, तिचे वाचक, ती मालक सारणी आहे का, आणि ती वाहणाऱ्या संचिका यांसह घोषित होते; एक चाचणी घोषणा नेमक्या याच यादीत ठेवते.
पूर्ण स्थानिक सारण्या, coven ला कधीही घोषित नाहीत:
playback_state: सध्याचे गाणे, स्थान, रांग, आवाज, क्रमभंग आणि पुनरावृत्ती. वाजवणे ही साधनाची गोष्ट आहे.- स्कॅन आणि आयात सारण्या: पाहिल्या जाणाऱ्या संचयिका, स्कॅन, आयात उमेदवार आणि त्यांचे मसुदे.
source_releaseआणि त्याखालील टेबल्स: bae ने आणलेल्या प्रत्येक MusicBrainz आणि Discogs रिलीजमधून काढलेले — अल्बम आणि प्रेसिंगची माहिती, श्रेय आणि रचनांसह संपूर्ण ट्रॅकलिस्ट, कव्हरचे पर्याय, आणि इतर कॅटलॉग त्याला काय म्हणतात — स्थानिक रिलीजऐवजी पुरवठादार रिलीजद्वारे कीड. कच्चा JSON ठेवला जात नाही; कोणतेही उपकरण रिलीज पुन्हा आणू शकते.local_release_files: या साधनावरील स्थानिक आवृत्तीचे संचिका मार्ग आणि बदलाच्या वेळा.local_history: या साधनाच्या व्यक्तीचे प्रोफाइल बनण्यापूर्वीचे वाजवणे, जे प्रोफाइल बनल्यावर तिच्या खाजगी वर्तुळात हलवले जातात.
दोन साधनांची संपादने खाना-दर-खाना जुळवली जातात, दोघांनी बदललेल्या खान्यात नंतरचे संपादन जिंकते. coven जुळवणीचा हिशेब स्वतःच्या सारण्यांत ठेवते, त्यामुळे bae च्या सारण्यांत घड्याळ स्तंभ नसतात.
द्वयी वस्तू
या विभागाची लिंकध्वनी आणि प्रतिमा 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 त्या सर्व एकत्र क्लाउडवर वळवते, आणि इतर साधने पहिल्या वाचनावर प्रत्येक संचिका साठ्यात आणतात. मुखपृष्ठे, कलाकार प्रतिमा आणि अवतार bae चे असतात: bae बाइट्स तयार करते (मुखपृष्ठे जास्तीत जास्त 600px रुंद JPEG लघुप्रतिमा म्हणून पुन्हा उमटतात), आणि साधन प्रत्येकाला ते पहिल्यांदा दाखवले जाते तेव्हा आणते आणि त्याच्या नामावकाशाचा मापदंड ते बाहेर काढेपर्यंत ठेवते.
प्रत्येक संचिका यादृच्छिक नावाखाली कूटबद्ध होऊन चढवली जाते, अशा मार्गावर जो ती तयार केली जाते तेव्हा ठरतो, त्यामुळे नंतर नाव बदलल्याने वस्तू कधीही हलत नाही. संचिकेचे बाइट्स कधीही बदलत नाहीत: नवी प्रतिमा म्हणजे नवी संचिका.
rip ची ओळख
या विभागाची लिंकप्रत्येक आयात नव्या यादृच्छिक ओळखीसह आवृत्ती आणि तिच्या स्वतःच्या ट्रॅक व फाइल नोंदी तयार करते. प्रत्येक उपकरण local_release_origin मध्ये त्याच्या प्रत्येक आयातीने वाचलेल्या फाइलींच्या क्रमबद्ध सापेक्ष मार्ग, आकार आणि बदलाच्या वेळांचा SHA-256 नोंदवते; ही नोंद कधीही सिंक होत नाही. ज्या संचयिकेचा हॅश या उपकरणाने नोंदवला आहे ती कुठेही हलवली तरी पूर्ण झालेल्या आयातींच्या टॅबमध्ये असते, आणि तिची ओळ तिच्यातून आयात केलेली एकमेव आवृत्ती दाखवते. त्याच उपकरणावर त्याच फाइली पुन्हा आयात केल्यास ते अयशस्वी होते, आणि पूर्ण झालेल्या आयातींच्या टॅबमध्ये पुन्हा आयात करण्याची कृती नसते.