並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 20 件 / 20件

新着順 人気順

SQLアンチパターンの検索結果1 - 20 件 / 20件

タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。

SQLアンチパターンに関するエントリは20件あります。 DBmysqldatabase などが関連タグです。 人気エントリには 『ポケモンを題材に「SQLアンチパターン」を実践してみる - kanayamaのブログ』などがあります。
  • ポケモンを題材に「SQLアンチパターン」を実践してみる - kanayamaのブログ

    @tkanayama_です。「SQLアンチパターン *1」 という本を読みました。「ポケモンを題材に因果推論を実践してみる」のように、仮想的なストーリ上で実際に使ってみた感を出すことにより、自分の記憶に定着させることを狙います。 前提として、何をアンチパターンとするかは状況(ベンダーフリーである必要があるかどうか、どの程度の頻度で更新されるか・・・など)によって大きく異なるので、下記で紹介するアンチパターンは実は状況によっては問題にならないケースもあるかと思います。この投稿はあくまで「SQLアンチパターン」に忠実に従うことが目的です。 www.oreilly.co.jp 追記 登場人物 ストーリー フシギダネへの対応 ヤミカラスへの対応 ディグダへの対応 誤登録でポケモントレーナーになってしまったユーザーの削除 最後に 謝辞 追記 このブログを公開後、「外部キー制約はレコードロック周りのト

      ポケモンを題材に「SQLアンチパターン」を実践してみる - kanayamaのブログ
    • SQLアンチパターンもりもりDBを設計しよう! - Qiita

      概要 名著SQLアンチパターンを読み終えたので、それの復習のために悍ましいデータベースを作ろうと思った。 まず前半では、SQLアンチパターンを意図的に盛り込み、目も当てられない酷い設計をします。 そのあとリファクタリングを行なったER図に書き直していきます。 なお、真面目に書くと参考書の丸写しになってしまうので、この記事は アンチパターンもりもりのER図を見て嫌悪感を学習し、設計に役立てようという趣向のもと、詳しい説明は省きます。 とても良い本なので読んでください。 想定するシステムの概要と状況 目的において適切かはわかりませんが、とりあえず考えることの多い”お金”を扱うシステムを想定してみます。 私はブラックジョークが好きなので、今回は「ちょっと怖い金融屋さんが使う債務者管理システム」のER図を設計してみようと思います。 ざっくりした要件 債務者を登録でき、プロフィールを入力できる。 債

        SQLアンチパターンもりもりDBを設計しよう! - Qiita
      • 業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編

        はじめに こんにちは。 GMOアドマーケティングのKONCEです。 新卒で入社し、数年経ちました。日々の業務で学ぶことは多いですが、今年度は技術の深堀りをテーマにやっていきたいと思っています。 今回は入社してDBやSQLに関しては業務内で学ぶことが多く、特別訓練をしていたわけではなかったのですが、「SQLアンチパターン」を用いて学びながら、改めて自分の現状を見つめ直していけたらと思います。 今回は学習を行う側面と自分自身のレベルについて見直していきたいので 知っていた → ○ 部分的に知っていた → △ 知らなかった → × を付けてみようと思います。 目次 SQLアンチパターンについて Ⅰ部 データベース論理設計のアンチパターン 2-1. [○]1章 ジェイウォーク(信号無視) 2-2. [×]2章 ナイーブツリー(素朴な木) 2-3. [○]3章 IDリクワイアド(とりあえずID) 2

          業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 前編
        • SQLアンチパターン簡単まとめ

          「SQLアンチパターン」について、自分の勉強がてら内容を簡単にまとめました。 「とりあえずSQLは触れてWebアプリが作れる」「シンプルなアプリを実務で作ったことがある」くらいの人が読むととても勉強になると思います。 また、「現場での良くない設計」が詳細に言語化されているので、経験豊富な人でも新たな発見があると思います。 詳しく知りたい方は是非本を買って実際に読んでみて欲しいです。 第一章 ジェイウォーク パターン 1カラムにコンマ区切りで値を入れて複数の紐付きを表現しようとする なぜダメか 検索しづらい 文字列カラムの文字数制限という暗黙の制約を受ける バリデーションかけられない 解決策 交差テーブルの作成 第二章 ナイーブツリー パターン 木構造を表現するとき、常に親のみに依存する(parent_idだけ持ってしまう) 隣接リスト なぜダメか 階層を深く掘ろうとするとそのぶんSQLをか

            SQLアンチパターン簡単まとめ
          • 業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 後編

            はじめにこんにちは。GMOアドマーケティングのKONCEです。新卒で入社し、数年経ちました。日々の業務で学ぶことは多いですが、今年度は技術の深堀りをテーマにやっていきたいと思っています。今回は入社してDBやSQLに関しては業務内で学ぶことが多く、特別訓練をしていたわけではなかったのですが、「SQLアンチパターン」を用いて学びながら、改めて自分の現状を見つめ直していけたらと思います。今回は学習を行う側面と自分自身のレベルについて見直していきたいので 知っていた → ○ 部分的に知っていた → △ 知らなかった → ... 今回は後編です。 今回も 知っていた → ○ 部分的に知っていた → △ 知らなかった → × を付けてみようと思います。 目次 SQLアンチパターンについて Ⅲ部 クエリのアンチパターン 2-1. [△]13章 フェア・オブ・ジ・アンノウン(恐怖のunknown) 2-2

              業務でどれだけSQL力がつくのか ~SQLアンチパターンを用いて確認~ 後編
            • SQLアンチパターン:ENUMは使わない方がいいよ | Shiro's secret base

              どうも、シローです。 今回は、特定の文字列に限定した列を定義する方法について、アンチパターン「サーティワンフレーバー」も一緒に紹介します。 特定の値を持ちうる列とは 例えばユーザ(Users)の権限(管理者かメンバーか)を表したい場合、Usersテーブルにメンバーの権限を表すuser_roleという列を定義するとします。 このuser_roleには管理者の場合はadmin、メンバーの場合はmemberという値を持ちそれ以外の値は格納しない(できない)ようにするにはどうすれば良いのか アンチパターン「サーティワンフレーバー」について 先にアンチパターンについて紹介します。 サーティワンフレーバーと呼ばれる設計方法では特定の値を入れるために 列にCHECK制約を入れる(MySQL8.0以降) 列をENUM型にする という手法を取りうることです。 僕の環境はMySQL5.7なのでENUM型のカラ

                SQLアンチパターン:ENUMは使わない方がいいよ | Shiro's secret base
              • SQLアンチパターン勉強会 第五回:EAV(エンティティ・アトリビュート・バリュー) - Qiita

                はじめに 本エントリーは某社内で実施するSQL勉強会向けの資料となります。 本エントリーで書籍「SQL アンチパターン」をベースに学習を進めます。書籍上でのサンプルコードはMySQLですが、本エントリーでのサンプルコードはSQL Serverに置き換えて解説します。 また本章以外のエントリーおよび利用するSQLリソースなどは、以下のGitHubを参照ください。 EAV(エンティティ・アトリビュート・バリュー)とは 「リレーショナルデータベースはメタデータの柔軟性が低い」という拡張性の問題についての議論は、リレーショナルモデルが提唱されて以来、途切れることなく議論されてきました。 EAVは「可変属性をサポートする」など、柔軟な設計を目指したことに起因するDB設計のアンチパターンです。 EAV(Entity-Atribute-Value)では、次のような項目を持たせたテーブルが設計されます。

                  SQLアンチパターン勉強会 第五回:EAV(エンティティ・アトリビュート・バリュー) - Qiita
                • 実録!SQL アンチパターン - Qiita

                  はじめに 『SQL アンチパターン』には,リレーショナル・データベースの設計・運用にあたってのよくある失敗例が25個紹介されている.本記事では,5ヶ月間の開発経験の中で,自分が実際に遭遇した事例のうち,3つを紹介する.コード例は,実際の事例を単純化して作成したものである. 環境は以下を想定する. フレームワーク: Ruby on Rails 6.0 データベース: MySQL 8.0 12章 インデックスショットガン(闇雲インデックス) エンジニアのインターンを始めてはや2ヶ月が過ぎようとしていた頃,ボスから与えられた指令は,「お前,ちょっとインデックス見てこい」というものだった.これまで複合インデックスの効果的な使用を十分に意識できていなかったからその辺りを重点的に見てほしいとのことだった.MENTOR の原則の出番である. MENTOR の原則 MENTOR の原則は,データベースのイ

                    実録!SQL アンチパターン - Qiita
                  • SQLアンチパターン ファントムファイル - Qiita

                    目的:画像をはじめとする大容量のメディアファイルを格納することを目的とする アンチパターン:物理ファイルの使用を必須と思い込む 画像データを保存する際にみなさんどのように保存しているだろうか。 DBにBLOB型として保存? 外部のファイルシステムに保存し、DBにはファイルパスを保存? 筆者は後者の外部にファイルを保存し、DBにはファイルパスを格納していた。 おそらく多くの方が後者を採用しているのではないか。 どちらもメリット、デメリットがある。 ファイル削除時の問題 画像をDBの外に保存している場合、DBで画像のファイルパスを削除したとしても実際の画像までは削除されない。 ファイルパスの削除に応じて参照先のファイルも削除する必要がある。 ファイルパスを削除して画像を削除しないと「孤児」となった画像が蓄積されていく。 逆に何かしらの理由で画像が削除されてしまった場合、DBに格納されているファ

                      SQLアンチパターン ファントムファイル - Qiita
                    • 【超特急】「SQLアンチパターン」 総おさらいLT 【4分で25個】

                      【超特急】「SQLアンチパターン」 総おさらいLT 【4分で25個】 PHP Conference Japan 2021 株式会社M&Aクラウド つざき

                        【超特急】「SQLアンチパターン」 総おさらいLT 【4分で25個】
                      • エンジニア歴6ヶ月による「SQLアンチパターン」書評(クエリのアンチパターン編) | フューチャー技術ブログ

                        読書感想文連載 の9冊目の記事です。 はじめに今回はエンジニア界隈で名著と名高いBill Karwin著「SQLアンチパターン」を読んだので書評をかいていきたいと思います。 私が基本的な研修を終えて、現場に配属後に「SQLを触ろう」となった際に、先輩に「アンチパターンさえやらなきゃいいよ」とアドバイスされたことがこの本を読むきっかけだったので、同じような境遇の初心者の方が現場でSQLを触ることになった時、最低限避けるべき項目の雰囲気を掴む、容易に確認することができる記事になれば幸いです。 本書のスタイルと本記事で注目すること本書は「データベース論理設計のアンチパターン」「データベース物理設計のアンチパターン」「クエリのアンチパターン」「アプリケーション開発のアンチパターン」の4部からなりそれぞれアンチパターンが数種類紹介されています。アンチパターンごとに「目的」「アンチパターン」「アンチパ

                          エンジニア歴6ヶ月による「SQLアンチパターン」書評(クエリのアンチパターン編) | フューチャー技術ブログ
                        • SQLアンチパターン EAVと4つの解決策

                          この記事はなに? SQLアンチパターンの第5章を読んで簡単にまとめたものです。 エンジニアであれば、SQLアンチパターンを一度は目を通すことをオススメします。 EAVとは EAVとはエンティティ・アトリビュート・バリュー(Entity Attribute Value)の略で、可変属性をサポートするなど、柔軟な設計を目指したことに起因するDB設計のアンチパターンのことです。 あなたが何かのスクールを経営していて、体験者・受講生・卒業生からアンケートを回収し、アンケート回答テーブルにデータを保存するとします。 質問したい項目が年齢と満足度であればこんな感じのテーブルになるでしょう。 アンケートid 年齢は? 満足度は?

                            SQLアンチパターン EAVと4つの解決策
                          • SQLアンチパターン 幻の第26章「とりあえず削除フラグ」

                            SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902Read less

                              SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
                            • スキーマを放棄したデータベース設計 - 『SQLアンチパターン』のEAVについて考察する

                              (テーブルの構成は『SQLアンチパターン』p53を引用) このテーブルは要望とバグ報告が可能なチケット発行システムで利用されます。バグ報告の場合はseverity(重大さ)とversion_affected(影響のあるバージョン)の属性を含み、要望の場合はsponsor(要望元スポンサー)を含みます。そのほかの属性(date_reported, reporter, riority, status)は共通のものです。(以降、共通の属性を基底、issue_type別の属性をサブタイプなどと呼びます。) このような設計が取られる背景には、リレーショナルデータベースがそもそも拡張性に乏しく、その反面で開発者には少ない工数でシステムを拡張する柔軟性が求められるという点が挙げられます。ただ、RDB本来の責務である「データを守ること」に立ち返ったとき、この拡張性の乏しさは堅牢性の裏返しであり、基本的にメ

                                スキーマを放棄したデータベース設計 - 『SQLアンチパターン』のEAVについて考察する
                              • SQLアンチパターン読書メモ

                                1章 ジェイウォーク(信号無視) 多対多の関連を表現する交差テーブルの作成を避けるためにリスト区切りにすることをジェイウォーク(信号無視)という。 Productsテーブルとユーザーアカウントの関連ははじめ「多対1」の関係だったが、次第に製品が複数の連絡先を持つ場合がある。そんな時はProductsテーブルの1つの行が複数の連絡先をもたなきゃいけない。 CREATE TABLE Products ( product_id SERIAL PRIMARY KEY, product_name VARCHAR(1000), account_id BIGINT UNSIGNED, FOREIGN KEY(account_id) REFERENCES Accounts(account_id) ); CREATE TABLE Products ( product_id SERIAL PRIMARY KE

                                  SQLアンチパターン読書メモ
                                • SQLアンチパターン勉強会 第6回:ポリモーフィック関連 - Qiita

                                  はじめに 本エントリーは某社内で実施するSQL勉強会向けの資料となります。 本エントリーで書籍「SQL アンチパターン」をベースに学習を進めます。書籍上でのサンプルコードはMySQLですが、本エントリーでのサンプルコードはSQL Serverに置き換えて解説します。 また本章以外のエントリーおよび利用するSQLリソースなどは、以下のGitHubを参照ください。 #ポリモーフィック関連とは ポリモーフィック関連とは、複数の親テーブルを参照する際に用いられるパターンです。 しかし、ポリモーフィック関連を用いるとそれぞれのテーブル間の参照整合性制約を定義することが出来なくなるというアンチパターンでもあります。 以下で詳細に述べていきます。 #使用する状況の例 バグテーブルに対して、コメントを書けるようにしたい 条件として、 バグに対して複数のコメントを書けるようにする どのコメントもいずれか一つ

                                    SQLアンチパターン勉強会 第6回:ポリモーフィック関連 - Qiita
                                  • 一家?に一冊「SQLアンチパターン」 - Qiita

                                    前置き 以前から読もう読もうとずっと思っていたSQLアンチパターンが想像以上に名著だったので、少しでもこの書籍の素晴らしさをお伝えすることができれば幸いです。 「SQLアンチパターン」とは 「SQLアンチパターン」は、デーベースの論理設計や物理設計などで陥りやすい失敗=アンチパターンを紹介し、失敗を避けるためのより良い方法を紹介している書籍です。 全体として データベース論理設計のアンチパターン データベース物理設計のアンチパターン クエリのアンチパターン アプリケーション開発のアンチパターン 以上4つのカテゴリーに分割され、一章ごとに1つのアンチパターンが紹介されていく形式になっています。 紹介されているアンチパターンを見てみると、 「うわっ、このパターンやっちゃってた・・・(OR 見たことある・・・)」 「いや、直近の案件がまさにこのアンチパターンの設計だったんだけど・・・」 という心

                                      一家?に一冊「SQLアンチパターン」 - Qiita
                                    • 【SQLアンチパターン】ナイーブツリーと閉包テーブル|ユウキ

                                      今回は「SQLアンチパターン」の第3章の「ナイーブツリー(素朴な木)」について、見ていきます。 では早速、見ていきましょう。 1 今回扱うケース下のようなスレッドが存在するとします。 いろんな人が書き込みを行っていますね。 枝分かれや、スレッドが下に伸びていったりしています。 例えば「1」のコメントに対して、2つのスレッドが立っている、といった具合です。 このような、ツリー状の階層をデータベースに格納するのはどうしたら良いでしょう。 2 用語の整理ここで、用語の整理です。 それぞれの一つ一つを「ノード」と呼びます。 上のように、先端を「リーフ(葉)ノード」と呼びます。 その中間の、ルートでもリーフでもないものが「非葉ノード」です。 3 アンチパターン 隣接リスト3ー1 隣接リストの概要アンチパターンとして紹介されていたのが「隣接リスト」です。 下のように、「そのコメントの親は誰か」に着目す

                                        【SQLアンチパターン】ナイーブツリーと閉包テーブル|ユウキ
                                      • SQLアンチパターン感想その二ーENUM型を扱う

                                        今回はSQLアンチパターンの感想その二です。 以前のプロジェクトで何回か出会ったことがあり、一つのカラムに対して、いくつかの選択肢がある、という場合、ENUMタイプを安易に使ってしまいましたが、この本を読んだら改めて反省しました。 解決したい問題とは 例えばブログポストのステータスというフィールドがあるとして、そのステータスには、DRAFT, PUBLISHEDといった値があります。ただ、ここはstatusフィールドに対して、DRAFTとPUBLISHEDのみに限定したいです。draftでも、newでも、挿入・更新できないように制限をかけたいところです。 アンチパターン:CHECKもしくはENUMを用いる CREATE TABLE Post ( -- ... status VARCHAR(20) CHECK (status IN ('DRAFT', 'PUBLISHED')) ); var

                                          SQLアンチパターン感想その二ーENUM型を扱う
                                        • SQLアンチパターン勉強会 第一回:ジェイウォーク - Qiita

                                          はじめに 本エントリーは某社内で実施するデザインパターン勉強会向けの資料となります。 本エントリーで書籍「SQL アンチパターン」をベースに学習を進めます。書籍上でのサンプルコードはMySQLですが、本エントリーでのサンプルコードはT-SQLに置き換えて解説します。 ジェイウォークパターン とは ジェイウォークパターンは、1つの列に複数の値を格納するアンチパターンです。たいていの場合「1対多の関係をサポートしたい」などの理由で利用されます。 例)他テーブルの主キー項目に紐づく値を、○○区切りのリストで格納する など product_id product_name account_id

                                            SQLアンチパターン勉強会 第一回:ジェイウォーク - Qiita
                                          1

                                          新着記事