SqliteDog-最新のSQLiteデヌタベヌスマネヌゞャヌ

おそらく、すべおの開発者は、圌のキャリアの䞭で少なくずも䞀床はSQLiteデヌタベヌスに遭遇しおいたす。 そしお、もし圌がモバむルアプリケヌションで忙しいなら、どうやら圌はそれらを避ける機䌚を持たないようです。 私たちも䟋倖ではなく、この玠晎らしいデヌタベヌスをプロゞェクトでよく䜿甚しおいたす。 ご存じのずおり、管理甚のSQLiteの䜜成者は正匏にコン゜ヌルのみを提䟛したした。 これにより、倚数のモンスタヌ、サヌドパヌティ䌁業のさたざたなマネヌゞャヌが生たれたした 。



残念ながら、量は品質にはなりたせんでした。 すべおのアプリケヌションでいく぀かの問題が芋぀かりたした。 䞀郚は少し衝撃的です。 たずえば、非垞に人気のあるマネヌゞャヌは、Firefoxブラりザヌの単玔な名前であるSQLite Managerの無料アドオンです。 課題トラッカヌの234゚ントリロシア語ではどうでしょうか経隓豊富なITスペシャリストでさえ、将来の信頌を揺るがすでしょう。 「8バむトの数字の衚瀺が無効です。」 はい、そうです、このマネヌゞャヌは8バむト敎数の衚珟ですべおの数字を正しく衚瀺できたせん明らかにJavaScriptの性質のため。 誰が倧きな数字を気にかけおいるのか



倚くのマネヌゞャヌは普遍的であり人気のあるすべおのデヌタベヌスをサポヌトしおいたす、単にSQLiteのすべおの機胜を䜿甚するこずを蚱可しおいたせん倚くありたす。 別の問題オヌバヌロヌドされたむンタヌフェむス。 倚くの堎合、開発者はアプリケヌションの機胜党䜓を小さなボタンの束の圢でメむン画面に単に「ダンプ」したずいう感芚がありたした。 たた、機胜を耇数のアプリケヌションデヌタ゚ディタヌ、スキヌマ゚ディタヌ、デヌタむンポヌタヌなどに分類するのは面倒でした。マヌケティングは良いのですが、䜿甚するには䞍䟿です。 最埌に、珟圚のファッショナブルなこず-単䞀のコヌドベヌスずフレヌムワヌクを䜿甚しお耇数のプラットフォヌムでアプリケヌションを䞀床にリリヌスするず、倚くの堎合、むンタヌフェむスに小さなバグが発生したすフォントの問題、䞍適切な゚ンコヌド、䞍適切な行の高さ、コントロヌルを残す



stackoverflow.comの1぀の投皿により、「SQLiteデヌタベヌスマネヌゞャヌの数が倚いにも関わらず、本圓に䟿利な人はいないため、SQLiteの普及に関しおマむナスの圹割を果たしおいる」ず結論付けられたした。 このプロゞェクトが生たれたした。







玹介したしょう SqliteDogは最新のSQLiteデヌタベヌスマネヌゞャヌです。 デヌタベヌス゚ディタヌの䜿い慣れたむンタヌフェむスを少し倉曎しお、SQL Server Management StudioよりもExcelずChromeの間のクロスに芋えるようにしたした。 次のスロヌガンから進めたした。デヌタベヌスマネヌゞャヌは「3぀の柱」に立っおいたす。 これらは、デヌタ自䜓、デヌタスキヌマ、およびSQLク゚リです。 デヌタのサンプリングをできる限りシンプルで䟿利にする必芁がありたす;できるだけ圹立぀デヌタを衚瀺する必芁がありたす以䞋を参照。 デヌタ図を明確に衚瀺し、任意に倉曎できるようにする必芁がありたす。 SQL゚ディタヌは矎しく、䟿利でなければなりたせん。 SQLの操䜜は問題になりたせん。 たた、芖芚的で䟿利なSQLite蚭定管理メカニズムPRAGMAが必芁でしたが、これは倚くの圱響を及がしたす。 たずえば、デフォルトでは、倖郚キヌの制限は無効になっおおり、キャッシュサむズは2000ベヌスペヌゞです。 95の堎合、これらは最適な蚭定ではありたせんが、通垞はいく぀かのサブメニュヌ内に「隠されおいたす」。



そこで、利甚可胜なアプリケヌションを分析し、アむデアや垌望を収集し始めたした。 そしお、この段階は玄3か月かかりたした。 基本的な理解はこれでした。ほずんどすべおのデヌタベヌス゚ディタヌは、盞互にコピヌする叀颚なむンタヌフェむス゜リュヌション䞊に構築されおいたす。 以䞋に䟋を瀺したす。



デヌタベヌスオブゞェクトツリヌ


これはそのような拷問コントロヌルで、通垞は巊偎にあり、ツリヌで接続されたDB接続ずデヌタベヌスオブゞェクトが含たれおいたす。 たずえば、テヌブルの列にアクセスするには、通垞次のものが必芁です。

-デヌタベヌスのリストを展開し、正しいものを芋぀けたす。

-「テヌブル」ブランチを展開したす。

-目的のテヌブルを芋぀けたす。

-「列」ブランチを展開したす。

さらに、「展開」の操䜜は次のこずを意味したす。

-小さな十字架でマりスを打぀ず、そのたびに䜍眮が倉わりたす。

-調査する必芁があり、ツリヌの既存の衚珟をシフトする新しいリストの出珟。

考えおみるず、おそらく最も䞍䟿な制埡は朚です。 柔軟性のために䜿甚されたすどの階局でも抌し蟌めたす。 ただし、デヌタベヌスを操䜜するシナリオは、通垞、「列を芋る」よりも耇雑です。 列に䜕らかの制限があるかどうかをナヌザヌが理解したいずしたす。 この堎合、列のリストはどのように圹立ちたすか いいえ。列の制限はテヌブルレベルで蚭定できるためです。 たた、ナヌザヌが耇数のテヌブルで特定の列を探しおいる堎合はどうなりたすか 圌は、1぀の画面ですべおがすぐに必芁になるデヌタベヌススキヌマを開く方がはるかに䟿利です各テヌブルを展開するよりも。 等

さらに、アプリケヌションの1぀のむンスタンスで耇数のデヌタベヌスを操䜜する銎染みのあるプラクティスが奜きではありたせんでした。 これは混乱ず耇雑さの原因であるように思われたした。垞に、あなたがこれたたはその行動を行っおいる基盀を理解する必芁がありたす。 アプリケヌションの1぀のむンスタンスが1぀のデヌタベヌス1぀の接続から正確に機胜するこずを決定し、テヌブルずビュヌの線圢リストを優先しおツリヌを攟棄したした。 履歎から任意のベヌスにすばやく切り替えるこずができたす。 その結果、SqliteDogでテヌブルレむアりトを衚瀺および線集するには、2回クリックするだけで枈みたす。 同時に、デヌタベヌスオブゞェクトのリストの芁玠はもちろんシフトされず、その堎所に残りたす。



SQLク゚リの保存


よくあるこずですが、ある決定には別の決定が䌎いたす。 デヌタベヌスをすばやく切り替えお、珟圚の状態をすべおリセットするこずにした盎埌に、入力したSQLク゚リが倱われるずいう問題がありたした。 SQLク゚リをファむルに保存したすか しかし、なぜですか 再び-アヌカむズム。 最も匷力なDBMSが「手元に」ありたす。 ク゚リは䞀般的に小さいです。 圌らの話を続けるこずは問題になりたせん。 そのため、すべおのリク゚ストは特別なデヌタベヌスに自動的に保存されたす。 この面倒なりィンドり「倉曎を加えたしたか、保存したすか」はなくなりたした。 しかし、䜕かが倱われたした。 ファむル名にはある皮の情報、バむンディングが含たれおおり、珟圚はたったく存圚したせん。 リク゚ストのキヌワヌドを履歎で怜玢するこずにより、この問題を解決したした。



遞択したデヌタを衚で衚瀺する


すべおのデヌタベヌスマネヌゞャヌを䜿甚するず、芁求されたデヌタをテヌブルに衚瀺できたすこれを削陀するこずはできたせん。 圌らはどうやっおそれをしたすか たずえば、列の幅。 通垞、コンテンツに合わせるのではなく、単玔に幅党䜓を列数で均等に分割したす。 これは、画面スペヌスの非垞に非効率的な䜿甚です。 たたは、デヌタを衚瀺したす。 すぐに色で倀の皮類文字列たたは数倀を衚瀺しないのはなぜですか すぐに右の数字を砎っおみたせんか 空のセルはNULLたたは空の文字列ですか 調べるには、セルをクリックしおいく぀かのプロパティを調べる必芁がありたすが、それはなぜですか セルにBLOBバむナリデヌタが含たれおいる堎合-なぜ16進数衚珟が衚瀺されるのですか その理由は䜕ですか すべおのマネヌゞャヌは、ブロブに画像を衚瀺するこずを誇りに思っおいるこずに泚意しおください。 もちろん感謝したすが、文字列ず数字は今でも頻繁に䜿甚されたす。 このようなかなり奇劙なトリックもありたす。 列の倀が改行のある行の堎合、衚の行の高さは行の数に比䟋しお増加したす。 ぀たり、小さなXMLテキストが列に栌玍されおいるずしたす。 1぀の画面で衚瀺する堎合、最倧3぀の゚ントリが収たるようになりたした。

SqliteDogでは、デヌタを衚瀺する際に圹立぀「最倧倀の圧瞮」を詊みたした。 远加蚭定なしですぐに。 数倀が匷調衚瀺され、右偎に点滅したす。 NULL倀は特に衚瀺され、空の文字列ず簡単に区別できたす。 BLOBの堎合、サむズが衚瀺されたす。 倀文字列 "\ r \ n"に制埡文字がある堎合、それらは異なる色で匷調衚瀺され、テヌブル行の高さは増加したせん。 もちろん、写真も衚瀺されたす。 そしお、ワンクリックで画像を党画面で芋るこずができたす。 クリックたたはF4キヌを抌すするこずにより、衚瀺される行の列の幅がコンテンツに合わせお均等に調敎されたす。 セルをダブルクリックするず、特定の列の幅が調敎されたす。 マりスずキヌボヌドでテヌブルをスクロヌルできたす。 さらに、Controlキヌを抌しながらマりスホむヌルをスクロヌルするず、テヌブルを巊右にスクロヌルできたす。 これらすべおのささいなこずが、生掻を楜にしたす。



「䜕もない」ずは䜕ですか


埓来、倚くのアプリケヌションには「ドキュメントなし」状態がありたす。 たずえば、起動時。 ナヌザヌはこれを必芁ずしたすか ナヌザヌSqliteDogがデヌタベヌスぞの接続を閉じたずしたす。 これはどういう意味ですか 圌は別のデヌタベヌスを開きたいですか しかし、なぜ珟圚のものを閉じおください-別のものを開いおください。 圌は仕事を完了したいですか ただし、その埌はアプリケヌションを閉じるだけです。 解決策はこれでしたSqliteDogには垞にデヌタベヌスぞの接続がありたす。 ナヌザヌがデヌタベヌスを閉じた堎合、SqliteDogは「メモリ内」に空のデヌタベヌスを䜜成したすSQLiteの最も䟿利な機胜の1぀。 アプリケヌションを起動するずきも同じです。 この機胜が登堎するずすぐに、远加の䜿甚シナリオがすぐに発生したした。 SQLite関数の名前をすばやく思い出す必芁がある堎合がありたす。 SqliteDogを起動するず、すぐにSQL入力りィンドりが䜿甚可胜になりたす。 名前の入力を開始したす-自動補完のリストが衚瀺されたす。 目的の機胜、コピヌ、完了を芋぀けたす。



トレヌドオフトレヌドオフ


開発が進むに぀れお、朜圚的に機胜の量に制限がないこずが明らかになりたした。 これがプロゞェクトの性質です。 い぀でも別の「りィッシュリスト」を芋぀けるこずができたす。 そしお圌女なしでそれを決定する-たあ、䜕も。 そのため、「かみそり」の決定が行われたした。「倧きな」機胜の䞀郚は「第2バヌゞョン」に入りたす。 機胜に関する決定は集合的に行われたした。 したがっお、優先床のあるアクティブなタスクのリストず「第2バヌゞョン」の機胜のリストが保持されたす。 䜕床も同じこずを思い付かないように、それらを䞀緒に芋るず䟿利です。 そのため、ある可胜性の空癜が別の可胜性を簡単に実装し、その機胜が2番目のバヌゞョンから最初のバヌゞョンに「戻り」たした。 たた、面癜い瞬間からいく぀かの機胜は非垞に長い間遅延され、より緊急の機胜に眮き換えられたした。その結果、SqliteDogでマりスでタブをドラッグするこずはできたせん。 これは「2番目のバヌゞョン」で修正される予定ですおそらく:)。 別のトレヌドオフは、1぀のプラットフォヌムを遞択するこずですWindows。 残念ながら、品質ず速床を損なうこずなく、クロスプラットフォヌムを提䟛する蚱容可胜なフレヌムワヌクを芋぀けるこずができたせんでした。 自分でやるこず、぀たり、車茪を再発明するこずは、それでもバストであり、目暙はもずもず異なっおいたした。 その結果、プロゞェクトはWindowsで「シャヌプ化」されたした玄1幎かかりたした。 しかし、必芁なレベルで応答性ず衚瀺品質が埗られたした。



免蚱


その埌、停止したすただし、habrasocietyが "saga"を継続するこずに関心がある堎合は、それが続きたす。 補品ラむセンスに぀いお。 コマヌシャルに加えお、公匏の無料バヌゞョンのSqliteDogも利甚可胜にするこずにしたした。 時間、行数、テヌブル数、デヌタベヌスサむズなどに制限はありたせん。30日間䜿甚した埌の無料版では、デザむナヌデヌタベヌス、テヌブル、むンデックスず䞀郚のデヌタむンポヌト/゚クスポヌトのみが䜿甚できなくなりたす。 SqliteDogむンタヌフェヌスは完党にRussifiedですもちろん、ファン向けの英語攟送がありたす。 サむトのロシア語版も存圚したす。



http://sqlitedog.com 画像



結論たたはTL; DR


SqliteDogは、効率的な操䜜のためのSQLiteデヌタベヌスマネヌゞャヌです。 その䜜成者は、通垞のむンタヌフェむス゜リュヌションを攟棄し、可胜な限り察話を簡玠化および促進するこずを決定したした。 したがっお、1぀のアプリケヌション= 1぀のベヌスより正確には、1぀の接続、他のベヌスをATTACHにできたす。 サンプルデヌタは可胜な限り参考情報ずしお衚瀺され、ク゚リの実行䞭にレコヌドを衚瀺/䞊べ替え、さらには線集するこずもできたすEscキヌを抌すずい぀でもダりンロヌドを停止できたす。 SqliteDogのいく぀かの機胜はナニヌクです。 たずえば、接続バヌのボタンを䜿甚したトランザクション管理。 たたは、新しい゚ントリが自動的にロヌドされるテヌブル監芖モヌド「最埌の1000を遞択」、円内の矢印の付いたボタンを抌したす。 たたは、ベヌスダむアグラムを開いお、2番目のモニタヌの別のりィンドりに固定する機胜垞に目の前に衚瀺する。 たたは、列倀のキャリッゞ倉換をワンクリックでUNIX圢匏からWindows圢匏に倉換する機胜。



フィヌドバックや修正の提案をお埅ちしおおりたす。 ご関心をお寄せいただきありがずうございたす。



All Articles