හොඳ දළ විශ්ලේෂණ
පොදුවේ ගත් කල, ඔබ වේගයෙන් කියවන වේලාවන් (නිදසුනක් ලෙස, කැදැලි කට්ටලය) හෝ වේගවත් ලිවීමේ වේලාවන් (යාබද ලැයිස්තුව) අතර තීරණයක් ගන්නවා. සාමාන්යයෙන්, ඔබ අවසන් වන්නේ ඔබේ අවශ්යතාවන්ට වඩාත් ගැලපෙන පහත විකල්පයන්ගේ එකතුවෙනි. පහත දැක්වෙන්නේ ගැඹුරු කියවීමක් සපයයි:
- එදිරිව Adjacency ලැයිස්තුව සාපේක්ෂව වැඩි පතරෙහි ප්රාන්තර එක් : හොඳම සංසන්දනය Adjacency ලැයිස්තුව, වෙස් පාත්, කැදලි Set හා කැදලි පරතරය මම එක හොදයි සොයාගෙන ඇත.
- ධූරාවලි දත්ත සඳහා ආකෘති : වෙළඳාම සහ උදාහරණ භාවිතය පිළිබඳ හොඳ පැහැදිලි කිරීම් සහිත විනිවිදක
- MySQL හි ධූරාවලිය නියෝජනය කිරීම : විශේෂයෙන් නෙස්ටඩ් සෙට් පිළිබඳ ඉතා හොඳ දළ විශ්ලේෂණයක්
- ආර්.ඩී.බී.එම්.එස් හි ධූරාවලි දත්ත : මා දුටු වඩාත් සවිස්තරාත්මක හා සංවිධානාත්මක සබැඳි සමූහය, නමුත් පැහැදිලි කිරීමේ ආකාරයෙන් නොවේ
විකල්ප
මා දන්නා සහ පොදු ලක්ෂණ:
- යාබද ලැයිස්තුව :
- තීරු: ID, ParentID
- ක්රියාත්මක කිරීමට පහසුය.
- ලාභ නෝඩ් චලනයන්, ඇතුළු කිරීම් සහ මකාදැමීම්.
- මට්ටම, පරම්පරාව සහ පැවත එන්නන් සොයා ගැනීමට මිල අධිකය
- ඒවාට සහාය වන දත්ත සමුදායන්හි පොදු වගු ප්රකාශන හරහා N + 1 වළකින්න
- නෙස්ටඩ් සෙට් ( නවීකරණය කරන ලද පෙර ඇණවුම් ගස් සංචලනය )
- තීරු: වම, දකුණ
- ලාභ පරම්පරාව, පැවත එන්නන්
O(n/2)
වාෂ්පශීලී කේතීකරණය හේතුවෙන් ඉතා මිල අධික චලනයන්, ඇතුළත් කිරීම්, මකාදැමීම්
- පාලම් වගුව ( වසා දැමීමේ වගුව / w ප්රේරක )
- මේ සමඟ වෙනම සම්බන්ධක වගුවක් භාවිතා කරයි: මුතුන් මිත්තන්, පැවත එන්නන්, ගැඹුර (අත්යවශ්ය නොවේ)
- ලාභ පරම්පරාව සහ පැවත එන්නන්
O(log n)
ඇතුළත් කිරීම, යාවත්කාලීන කිරීම, මකා දැමීම සඳහා පිරිවැය (උප කුලයේ ප්රමාණය) ලියයි- සාමාන්යකරණය කළ කේතන ක්රමය: RDBMS සංඛ්යාලේඛන සහ විමසුම් සැලසුම්කරුට සම්බන්ධ වීම සඳහා හොඳයි
- එක් නෝඩයකට පේළි කිහිපයක් අවශ්ය වේ
- රේඛීය තීරුව ( ද්රව්යමය මාර්ගය , මාර්ග ගණනය කිරීම)
- තීරුව: පෙළපත (උදා: දෙමව්පියන් / දරුවා / මුනුබුරා / යනාදිය ...)
- උපසර්ග විමසුම හරහා ලාභ පරම්පරාව (උදා
LEFT(lineage, #) = '/enumerated/path'
) O(log n)
ඇතුළත් කිරීම, යාවත්කාලීන කිරීම, මකා දැමීම සඳහා පිරිවැය (උප කුලයේ ප්රමාණය) ලියයි- සම්බන්ධ නොවන: අරා දත්ත සමුදාය හෝ අනුක්රමික නූල් ආකෘතිය මත රඳා පවතී
- කැදැලි අන්තරයන්
- කැදැලි කට්ටලය මෙන්, නමුත් කේතීකරණයේ වාෂ්පශීලී නොවන පරිදි තාත්වික / පාවෙන / දශමයෙන් (මිල අඩු චලනය / ඇතුළු කිරීම / මකා දැමීම)
- තාත්වික / පාවෙන / දශම නිරූපණය / නිරවද්යතා ගැටළු ඇත
- මැට්රික්ස් කේතීකරණ ප්රභේදය "නොමිලේ" සඳහා මුතුන් මිත්තන්ගේ කේතීකරණ (ද්රව්යමය මාර්ගය) එක් කරයි, නමුත් රේඛීය වීජ ගණිතයේ අමතර උපක්රම සමඟ.
- පැතලි වගුව
- එක් එක් වාර්තාවට මට්ටම් සහ ශ්රේණියේ (උදා: ඇණවුම් කිරීමේ) තීරුවක් එක් කරන නවීකරණය කරන ලද යාබද ලැයිස්තුවක්.
- නැවත සැකසීමට / පැගිනේට් කිරීමට ලාභයි
- මිල අධික පියවර සහ මකන්න
- හොඳ භාවිතය: නූල් සාකච්ඡාව - සංසද / බ්ලොග් අදහස්
- බහු පෙළ රේඛා තීරු
- තීරු: එක් එක් පෙළපත් මට්ටමට එකක්, මුල දක්වා සියලුම දෙමව්පියන් යොමු කරයි, අයිතමයේ මට්ටමේ සිට පහළට NULL ලෙස සකසා ඇත
- ලාභ මුතුන් මිත්තන්, පැවත එන්නන්, මට්ටම
- ලාභ ඇතුළු කිරීම, මකා දැමීම, කොළ චලනය කිරීම
- අභ්යන්තර නෝඩ් වල මිල අධික ඇතුළත් කිරීම, මකා දැමීම, චලනය කිරීම
- ධූරාවලිය කෙතරම් ගැඹුරු විය හැකිද යන්නට දැඩි සීමාවක්
දත්ත සමුදාය විශේෂිත සටහන්
MySQL
ඔරකල්
- භාවිතය සම්බන්ධ මැරයෝ තරණය Adjacency ලැයිස්තු කිරීමට
PostgreSQL
- ද්රව්යමය මාවත සඳහා ltree datatype
SQL සේවාදායකය
- පොදු සාරාංශය
- 2008 පිරිනැමීම් මඟින් ධූරාවලිය දත්ත වර්ගය රේඛීය තීරු ප්රවේශයට සහ නිරූපණය කළ හැකි ගැඹුර පුළුල් කිරීමට උපකාරී වේ.
Closure Tables
වඩා උසස් යAdjacency List
,Path Enumeration
සහNested Sets
භාවිතයේ පහසුව අනුව (මම මෙන්ම කාර්ය සාධන අනුමාන කරනවා).