タグ

データベースに関するattokuのブックマーク (42)

  • Laravel-erにぜひ試してほしい省力化ツール5選 - HBLAB JSC

    みなさん、今日もLaravelしていますか?今回の記事では Laravel-erにぜひ試してほしい省力化ツール5選 を紹介します。ご興味のあるLaravel-erの方は、ぜひご覧ください。開発するのに役に立つと思います。 MySQL Workbench 「そんなの知ってるよ!」という声が聞こえてきそうです。待って、まだタブを閉じないで! みんな大好きMySQL Workbenchには、あまり使われていない便利機能がたくさんあります。 まず、このツールのすごいところは、テーブル間・カラム間の関係をEER図(拡張実体関連モデル)でエクスポートできるということです。 EER図があれば、データベースの構造は一目瞭然です。このエクスポート機能は、チームメンバーや顧客に、アイデアや設計を明確に伝えるのに役立ちます。 例として、簡単なデータベースを設計してみます。 usersテーブルとproductsテ

  • DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab

    Table users { id integer [pk] first_name varchar last_name varchar email varchar [not null] password varchar [note: 'Hashed password'] created_at datetime [not null, default: `now()`] updated_at datetime Indexes { email [unique, name: "ui_users_email"] } Note: 'table: users' } 上記のテーブル定義を dbdiagram.io の左側のコード記載部分に張り付けると右側にプレビューが表示されます。 以下は dbdiagram.io でのプレビューをした時の表示です。(Noteの箇所は説明のため加工しています) (1) Ta

    DB設計書の管理が楽になるDBML入門 – DBMLの書き方,dbdiagram.io, dbdocs の紹介 – | SIOS Tech. Lab
  • 履歴データテーブルとの向き合い方_PHPerKaigi2024

    PHPerKaigi2024 の登壇資料です。 履歴データテーブルとの向き合い方 https://fortee.jp/phperkaigi-2024/proposal/47cf9f17-825a-4021-bf33-86e4a62bc222

    履歴データテーブルとの向き合い方_PHPerKaigi2024
  • 高効率なSQLクエリの書き方 - Qiita

    概要 この記事では、SQLクエリをより効率的に記述するためのベストプラクティスとテクニックに焦点を当てています。データベースのクエリはシステム全体のパフォーマンスに直結するため、最適な書き方を知ることは重要です。インデックスの効果的な活用方法、適切な結合の選択、そして条件の効果的な書き方など、SQLの最適化に関する具体的な手法を解説します。各SQL文に関する実行計画の結果も掲載していますので、ぜひご確認ください。 なお、Oracle19cとOracle12cでの利用実績がありますが、他のデータベースやバージョンにおいての検証は行っておりません。 新しい情報は随時追加されますので、お楽しみにしてください。 SQLの最適化に関連する基的なアイデア 以下の通りと考えています。 1.インデックスの利用 2.正しいJOINの選択 INNER JOIN、LEFT JOIN、RIGHT JOINなど、

    高効率なSQLクエリの書き方 - Qiita
  • いいねとその通知機能をDynamoDBで設計したら思ったよりムズい - エムスリーテックブログ

    【Unit4 ブログリレー4日目】 こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 今回は、SNSではごく一般的ないいねとその通知機能をDynamoDBを利用して実装したら思ったより大変だったので、その詳細をご紹介します。 キャナルシティ劇場は、福岡県福岡市博多区の複合商業施設「キャナルシティ博多」のシアタービル最上階に位置する劇場。文には特に関係ありません。 m3ラウンジ m3ラウンジのいいねとその通知の要件 RDBで実装したらどうなるか いいね機能 通知機能 DynamoDBで実装する いいね機能 通知機能 いいねする いいねを取り消す 通知を表示する 未読の通知の取得 未読の通知数 未読の通知を既読にする テーブル設計むずい PKとSKに何を選ぶか LSIは途中から作れない DynamoDBをローカルで動かして設計する まとめ We are h

    いいねとその通知機能をDynamoDBで設計したら思ったよりムズい - エムスリーテックブログ
  • 世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」を開発

    世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」を開発― 処理性能456万TPSと応答遅延219ナノ秒を実現 ― 日電気(株)と(株)ノーチラス・テクノロジーズはNEDOの「高効率・高速処理を可能とするAIチップ・次世代コンピューティングの技術開発」(以下、委託事業)において、世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」(以下、劔)を開発しました。 劔は、次世代のデータベースに用いられるハードウエア環境(メニーコア・大容量メモリーなど)に適合したシステムであり、ハードウエアの性能が向上するほどシステムの性能も高まる特性を有しています。32以上のコア数を有するハードウエアにおいては、世界最速レベルの処理性能456万TPSと219ナノ秒の応答遅延を実現しました。 劔の導入によって、複雑なバッチ処理とオンライン

    世界最速レベルの性能を持つリレーショナルデータベース管理システム「劔(Tsurugi)」を開発
  • DB設計の共有で疲弊してない?dbdocsのすゝめ

    DB設計の管理や作成に疲弊してません?こんにちは。ukmshiです。今日はDB設計の共有と管理に便利なツール、dbdocsについてお話しします。dbdocsを使えば、設計の可視化や共有がめちゃくちゃ簡単になるんです。今回は、その魅力と利点、そして実際の使い方について詳しく説明します。 dbdocsとは? dbdocsは、コードベース(DBML)でDB設計を管理し、URLで共有することが可能なツールです。データベースのテーブル構造や関係性を可視化し、それを他のチームメンバーやステークホルダーと手軽に共有することができます。 DBMLについてはこちらを参考に dbdocsの利点 dbdocsの利点について詳しく見ていきましょう。 無料 まず最初に、dbdocsは基無料です。コストを気にせずに利用できるので、チームの誰もがアクセス可能です。 コードベースで管理 dbdocsはコードベースでDB

    DB設計の共有で疲弊してない?dbdocsのすゝめ
  • [MySQL]AUTO_INCREMENTのidが戻る

    こんにちは、M-Yamashitaです。 今回の記事は、MySQLのAUTO_INCREMENTのidが戻ってしまう話です。 以前、RailsMySQLを使うサービスにて、Mysql2::Error: Duplicate entry 'xxx' for keyが発生しました。このエラーの原因を調べたところ、テーブルでAUTO_INCREMENTとなっているカラムのidが戻って採番されており、その影響でエラーが発生していることがわかりました。当時の私の認識では、AUTO_INCREMENTとなっているidは、戻って採番されることはないと思っていたので非常に驚きました。 そのため、このidが戻る現象について調べて記事にしたいと思い、執筆しました。 なお、この記事ではMySQL 5.7を使用しています。 この記事で伝えたいこと MySQL再起動によりAUTO_INCREMENTのidが戻って採

    [MySQL]AUTO_INCREMENTのidが戻る
  • 超入門!テーブル設計をデータモデリングから考えよう

    から学ぶ テーブル設計 超入門! 〜データモデリングとテーブル設計の基を学ぼう〜 https://modeling-how-to-learn.connpass.com/event/242944/ にてお話した際のプレゼン資料です。 入門者に向けて、テーブルを設計する上でモデリングすると良いよという話をしました。(熟練者は、そうだよねーっておさらいするか、そこは別の考え方があるんじゃないなどを呟いて貰えればといった内容です) モデリングして設計する際に、色々なモデルがあります。その中で、データモデルは静的な要素が強いモデルなので、モデリング全般を考えた際に、入門者にとって捉えやすいのではと考えています。 テーブルを設計する上で、データモデリングをしてデータモデルを作ることで、より良いテーブル構造を考えやすくなります。 #テーブル設計 #モデリング #データモデル #RDRA #概念モデ

    超入門!テーブル設計をデータモデリングから考えよう
  • RDBのデータモデリング・テーブル設計の際に参考にしている考え方と資料

    はじめに タイトルのとおり、RDBのデータモデリング・テーブル設計を行う際に参考にしている考え方と関連資料をまとめました。 P.S. なんと記事内でいくつか参考として挙げさせてもらっている増田さん・かとじゅんさん・奥野さん・そーだいさんからコメントいただくことができました。 当にありがとうございます。 前提 RDBを採用するのは事実を無駄なく正しく記録するため 正規化、トランザクション、制約とデータ整合性 基的には始めに理想として集合論・リレーショナルモデルに基づいて正規化を考え(論理設計)、パフォーマンスなどの現実問題に対して折り合いをつけていく(物理設計) 制約を最大限利用する cf: ↑P91〜 ↑P.29,41 ↑P56〜 ↑5章 ↑P347~ 情報とデータ データ:単なる事実の値→これを永続化して蓄えるものがRDB 情報:データから生み出される意味や目的のあるもの→RDB

    RDBのデータモデリング・テーブル設計の際に参考にしている考え方と資料
  • idをautoincrementして何が悪いの?

    idをautoincrementしない方が良い理由 こんにちは。株式会社プラハCEOの松原です。 最近プラハチャレンジの参加者とお話している際に 「PKのidはautoincrementするとして...」 とナチュラルにid=autoincrementするものという前提が見えたので、「当にidをautoincrementしても良いものだろうか?」と気になったことを書いてみようと思います。もしフレームワークが自動的にautoincrementでテーブルを作るからなんとなく使っているという方がいたらご一読いただいた後、それでも連番を使いたい理由があれば教えて欲しいです・・! 不必要に情報を晒すことになる スクレイピングされたり もしも僕が某大手に勤めているエンジニアで「競合サービスAにのってる物件情報、全部コピーして新しいサービス作ろうぜ」と指示されたらですよ?「人としてそれはやっちゃダメで

    idをautoincrementして何が悪いの?
  • MySQL互換のオープンソースDB MariaDB 10をインストールして利用する

    こんにちは、ITエンジニアの小村(@system_kom)です。 以前のブログ記事でCentOS上にSSL対応したApache httpdの環境を作成してPHP7.2をインストールする手順を紹介しました。 2018年5月当時に書かれた、前回 ... MariaDB(マリアディービー)とは、オープンソースの代表的なデータベースであるMySQLから派生した同じくオープンソースリレーショナルデータベースシステム(RDBMS)です。 ここ最近の主なLinuxディストリビューションで採用されています。 そんなMariaDBですが、CentOSのベースレポジトリではMariaDBは5.5系の古いバージョンしか用意されていません。現在リリースされているものは10系になりますので、10系の最新バージョンである10.2をインストールしていきます。 データベースまで導入が完了すると、ウェブサイトの構築には欠か

    MySQL互換のオープンソースDB MariaDB 10をインストールして利用する
  • 本番でTableを1つDeleteしてしまいON DELETE CASCADEでさらに4つTable dataが消えた話 - Qiita

    起きた事 番環境のデータ調査の依頼を受けた。その調査を受ける前に、それとは別で不要データをDBから削除する作業をMySQL Workbenchで行っていた。 DBで、データ調査を行う際にMySQL WorkbenchでSQLのselectと間違えてdeleteを実行してしまい、Tableを1つ丸ごとDeleteしてしまった。 ON DELETE CASCADEが親テーブルに設定されてしまっていたため、さらに4つのTable dataが芋づる式に消えてしまった。 ON DELETE CASCADEの説明としては、この記事がわかりやすかったです。 https://www.dbonline.jp/mysql/table/index11.html テーブルの構成(テーブル名などは例として挙げていて、実際のものとは多少異なります) 正しい設定 usersテーブルでuserを削除した時に、そ

    本番でTableを1つDeleteしてしまいON DELETE CASCADEでさらに4つTable dataが消えた話 - Qiita
  • データベース設計の際に気をつけていること - 食べチョク開発者ブログ

    皆さんこんにちは、エンジニアの西尾です。 新しい機能・サービスを開発する際、私は特にデータベース設計に気をつかいます。 データベースはシステムの土台です。 土台が不安定だと、その上に積み上げていくアプリケーションコードがいびつなものになり、つらい思いをします。 また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。 データベース設計には”これだ!”という正解はないと思っています。 サービスの特徴、システムの性質、toB向け/toC向け、Readが多い・少ない、Writeが多い・少ない。 その他もろもろの背景により、データベース設計の仕方も変わってきます。 このテーブルは正規化していないから駄目だ、この設計はいわゆるポリモーフィック関連だから使ってはいけない、などということはありません。 アンチパターンと呼ばれるものも時と場合によっては正解になります。

    データベース設計の際に気をつけていること - 食べチョク開発者ブログ
  • CakePHP 3のORM matchingメソッドで複数の条件を指定する方法 | 綺麗に死ぬITエンジニア

    CakePHP 3系にて、アソシエーションを利用する場合に便利なmatchingメソッド。 便利に活用させていただいていたのですが、利用していく上で、複数の条件を指定する場合において少し悩んだので、備忘録として。 使い方まずは通常の使い方から。 matchingは、多対多(belongsToMany)の関係を持つ2つのテーブルにおいて、片一方のテーブルに紐づくデータによって、もう片一方のテーブルから取得するデータをフィルタリングするメソッドです。 例えば、ブログの記事情報を格納するPostsテーブルとブログのタグ情報を格納するTagsテーブルが存在する場合、この2つのテーブルは多対多の関係(ブログは複数のタグを持ち、タグは複数のブログに割り当てられる)となりますが、特定のタグを持つブログのみを絞り込んで取得したい場合などに、このmatchingメソッドの出番となります。 特定のタグを持つブ

  • CakePHP3でMigrations を初めからやり直す方法

    データベースを直接編集してmigrationsコマンドが使えなくなった(汗) (1)正攻法 > bin\cake migrations rollback コマンドで戻す。必要であれば > bin\cake migrations rollback -t 20170301063829 みたいに戻りたいバージョンを指定する (2)先にDBのテーブルを削除してしまった場合 > bin\cake migrations rollback しても、「お探しのテーブルがありません」みたいなエラーが出る。 DBのphinxlog テーブルに bin\cake migrations status で表示される履歴情報が格納されている。それを消して > bin\cake migrations status コマンドすると Status Migration ID Migration Name ——————————

    CakePHP3でMigrations を初めからやり直す方法
  • [PHP][CakePHP]DB接続先の切り替えを bootstrap.php で行う - サブノート

    DB接続先の切り替えをbootstrap.phpで行うよう編集する。 ./app/config/database.php の設定。 <?php class DATABASE_CONFIG { var $test = array( 'driver' => 'mysql', : : ); var $product = array( 'driver' => 'mysql', : : ); /** DBの切り替え **/ public function __construct() { //cf. bootstrap.php $connection = Configure::read('database'); if(!empty($this->{$connection})) { $this->default = $this->{$connection}; } } } ?> ./app/config/

    [PHP][CakePHP]DB接続先の切り替えを bootstrap.php で行う - サブノート
  • mysqldumpオプションまとめ。whereで条件を指定したりする | Basicinc Enjoy Hacking!

    mysqldumpコマンドを使ってMySQLのデータをダンプする毎日を送っているzaruです。ダンプしまくるのはいいんだけど、実際に必要なデータって全部じゃなかったりするわけです。というわけで、mysqldumpのよく使うパターンをまとめてみた。 指定テーブルだけダンプする まぁ、まず基。データベース丸ごとじゃなくて指定したテーブルだけダンプしたい。 $ mysqldump -u user DB名 テーブル名A テーブル名B > dump.sql 単純にデータベース名の後ろに欲しいテーブル名を記載するだけ。 テーブル作成情報は必要ない 上記のダンプだと、drop table + create table文も同時に作成される。これらが必要ない場合は「-t」オプションを使う。 $ mysqldump -u user -t DB名 テーブル名A テーブル名B > dump.sql これで純粋に

    mysqldumpオプションまとめ。whereで条件を指定したりする | Basicinc Enjoy Hacking!
  • CakePHP2でMySQLのレプリケーションスレーブからデータを取得する - blogですかい

    CakePHP2で、特定のモデルでのSELECTでレプリケーションスレーブを参照する方法 Ap ... app/Config/database.php にmasterとslaveの設定を書く app/Model/AppModel.php のbeforeFind()に、参照先を変更する処理を書く -- $useReplica というプロパティを設定し、特定のModelのみでslaveを使用するように -- belongsToのモデル(JOINするテーブル)も、slaveを参照するように slaveを参照したいModelでは $useReplica = true;

    CakePHP2でMySQLのレプリケーションスレーブからデータを取得する - blogですかい
  • Cakephpで複数のデータベースを使用する(切り替えたりする) | WEBPAPRIKA

    WEBPAPRIKA Wordpress & PHP, Web Design, XCODE, Object-C, etc メニューとウィジェット