usakuのブックマーク (4,029)

  • SQLで木と階層構造のデータを扱う(1)―― 入れ子集合モデル

    1.入れ子集合モデルとは 木構造のデータ・サンプルとして、次のような階層の深さが 4 の組織図を例に取りましょう。一つのノードは、複数の親を持つことはない(=複数の上司を持たない)、かつ必ず一つの親を持つ(=命令系統から外れる社員がいない)と仮定します。この条件を破ると、木構造ではなくなってしまいます。 一般的な隣接リストモデルでこのデータを表現すると、次のようなテーブルになります。 --隣接リストモデルによる階層データ表現 CREATE TABLE OrgChart (emp VARCHAR(32) PRIMARY KEY, boss VARCHAR(32), role VARCHAR(32) NOT NULL ); INSERT INTO OrgChart VALUES ('足立', NULL, '社長'); INSERT INTO OrgChart VALUES ('猪狩', '足立

    usaku
    usaku 2023/11/28
  • RDBでツリー構造を実現する | オートロ株式会社

    Tutorial Advent Calendar 22日目、エンジニアの吉野です。 先日、Rails でツリー構造に触れる機会があり、その際に初めて知ることが多くありました。今回はその際に得られた知見を共有させていただこうと思います。 ツリー構造って何?まず、ツリー構造(木構造)とはなんのことでしょうか? Wikipediaによると 木構造(きこうぞう)とは、グラフ理論の木の構造をしたデータ構造のこと。だそうです。下に示した組織図のように、ある要素から派生して階層構造が成り立っているものを、木が根から葉へと広がっていく様子になぞらえてツリー構造と呼んでいるわけですね。 身近なところでイメージしやすいのは、パソコンのフォルダで見られる階層構造もツリー構造にあたります。 RDB でツリー構造を実現する方法MySQL や PostgresQL といった、Web アプリケーション開発でよく用いられ

    RDBでツリー構造を実現する | オートロ株式会社
    usaku
    usaku 2023/11/28
    “SQLアンチパターン”
  • 連番の作り方 - piruty’s blog

    「達人に学ぶ SQL徹底指南書」の1-9の連番の作り方を読んだまとめ。 sqlは集合指向の言語なので、「1から100までの連続した数字の生成」のような数列の集合の生成には向いていない。 が、向いていないが出来ないことはない。 下準備として、1 ~ 9までの数字が入ったテーブルが必要になる。(とには書いてあったが、今だと関数とかでできそうな気もするが未確認。) そのテーブルに対して、交差結合しながら値を足し合わせることで簡単に連番ができる。(numbersが1〜9までの数字が入ったテーブルという想定。) select n1.num + (n2.num * 10) as seq from numbers n1 cross join numbers n2 order by seq これで、0 ~ 99までの連番を作ることが可能。 桁を増やしたければ交差結合にもう一つnumbersを追加して、s

    連番の作り方 - piruty’s blog
    usaku
    usaku 2023/11/28
  • MySQLで連番の仮想表を作る - Hack Your Design!

    目次 やりたいこと前提環境方法応用編 0からデクリメント値を倍加させる直近30日間の日付をリストアップ注意点やりたいことMySQLで実テーブルを参照せずに連番のデータを生成したい。 前提環境MySQL 5.7方法下記のようなSQLでやりたいことが実現できます。 SELECT @seq_no := 1 AS seq_no UNION SELECT @seq_no := @seq_no + 1 AS seq_no FROM information_schema.COLUMNS LIMIT 10; ポイントとしては下記の通り。 全体の構成としては、2つのSELECT文をUNIONを使って結合しているというもの@seq_noという変数を用意1つ目のSELECT文で変数を初期化する2つ目のSELECT文で初期化した変数のインクリメントの処理を行う その際にデータ件数を確保するために、MySQLで最初

    MySQLで連番の仮想表を作る - Hack Your Design!
    usaku
    usaku 2023/11/27
  • [MySQL]日付が歯抜けのデータを結合して日付毎に整理されたテーブルを作る

    1前提環境MySQL 5.7方法以前紹介した連番の仮想表を作るテクニックを駆使すればやりたいことが実現可能です。 MySQLで連番の仮想表を作る 日付だけのテーブルを作る対象期間、つまり2018年1月1日〜2018年1月10日までのデータを生成します。 SELECT '2018-01-01' + INTERVAL seq_no DAY AS date FROM (SELECT @seq_no := 0 AS seq_no UNION SELECT @seq_no := @seq_no + 1 AS seq_no FROM information_schema.COLUMNS LIMIT 10) tmp;

    [MySQL]日付が歯抜けのデータを結合して日付毎に整理されたテーブルを作る
    usaku
    usaku 2023/11/27
  • 【MySQL】歯抜けになっている日付を埋めて集計したい - Qiita

    SQLで集計を行う際、以下のように取得元テーブルの レコードの日付が連続しておらず、歯抜けになっていることがあります。 集計したいテーブル +-----------+---------------------+ | rental_id | rental_date | +-----------+---------------------+ | 1 | 2005-05-01 22:53:30 | | 2 | 2005-05-02 22:54:33 | | 3 | 2005-05-04 23:03:39 | | 4 | 2005-05-07 23:04:41 | | 5 | 2005-05-15 23:05:21 | | 6 | 2005-05-17 23:08:07 | | 7 | 2005-05-18 23:11:53 | | 8 | 2005-05-20 23:31:46 | | 9 |

    【MySQL】歯抜けになっている日付を埋めて集計したい - Qiita
    usaku
    usaku 2023/11/27
  • LINE公式アカウントのAIプロンプトマネージャーとは?AI応答メッセージと何が違う?

    LINE公式アカウントの新機能 その名も、AI Prompt Manager。 (AIプロンプトマネージャー) LINEヤフーは、当社が提供する企業・店舗向けLINEアカウント「LINE公式アカウント」において、生成AIを活用してユーザーからの問い合わせに対する返信内容を提案する機能「AI Prompt Manager」を、10月18日よりトライアル提供を開始します。 引用:LINEヤフー公式サイト 【AIプロンプトマネージャーとAI応答メッセージは別の機能です】 公式LINEAI応答メッセージ(旧:スマートチャット)は、2023年11月29日にサービス終了。 2023年11月29日(水)をもちましてAI応答メッセージ機能を提供終了いたしました。 引用:【重要】AI応答メッセージの機能提供終了について(LINE公式アカウント管理画面お知らせより) LINE公式アカウントのAI Promp

    LINE公式アカウントのAIプロンプトマネージャーとは?AI応答メッセージと何が違う?
    usaku
    usaku 2023/11/25
    “AI応答メッセージ”
  • 株式会社モア・リビング | 畳ユニット 掘りごたつ

    畳ユニット 掘りごたつ 品格ある和空間の演出 近年、住宅市場で見直されてきた和の空間。 リビングやフローリングのスペースに畳の掘りごたつ空間を取り入れてみませんか。 モア・リビングがご提案する「畳ユニット」はリビングに調和する、天然木を使った高級感ある小上がり畳ユニットです。 ユニットの前面には2~3杯のスライドレールの引き出し、畳の下すべてが物を置けるスペースとなっており大容量の収納力を備えています。 オプションを追加すると掘りごたつにもなり※、機能面からも一年を通しお使いいただける優れた商品です。 2畳・2畳Wide・3畳・4.5畳のラインナップがございます。 ※3畳以上のサイズに関して グッドデザインしずおかマネジメント賞受賞 実用新案3187660 商品についてお問い合わせ ネットショップへ カスタムオーダー 畳ユニットは、特注でのご依頼も受け付けております。(基対応エリア:東京

    usaku
    usaku 2023/11/24
  • MySQLでバルクアップデートを実現するには その1 - Qiita

    更新のお知らせ 「その2」ができました。 「その1」を読んでいただいたあとに、こちらもご覧ください。 https://zenn.dev/maxima/articles/a23a9eda0cd3ae はじめに Hamee Advent Calendar 1日目ということで、実用的なSQL、バルクアップデートをご紹介したいと思います! バルクアップデートとは、1文のSQLで複数のレコードを一気に更新してしまうUPDATE文のことです。 バルクインサートはよく聞くけど、バルクアップデートは出来ないのかと疑問に思ったことはないですか? (バルクインサートについてそもそもご存じない方はこちらの記事がシンプルで分かりやすいかと思います) 結論から言いますと、バルクアップデートは可能です。しかし、バルクインサートほど気の利いた構文があるわけではありません。 これから何種類かご紹介しますが、ここに書かれて

    MySQLでバルクアップデートを実現するには その1 - Qiita
    usaku
    usaku 2023/11/20
  • iFreeNEXT インド株インデックスは新NISAの成長投資枠で買えますか?

    ホーム ひっきーの知恵袋 投資信託 - 中級者 iFreeNEXT インド株インデックスは新NISAの成長投資枠で買えますか? iFreeNEXT インド株インデックスは新NISAの成長投資枠で買えますか? お悩み 新NISAの成長投資枠の銘柄について質問があります。 2023年10月現在、「iFreeNEXT インド株インデックス」が投資信託協会の対象一覧に載っておりません。 新NISA対象になりますでしょうか? 回答 おっしゃる通り、iFreeNEXT インド株インデックスは、2023年10月現在、投資信託協会から公表されている「NISA成長投資枠の対象商品リスト」に載っておらず、新NISA対象銘柄ではありません。 新NISA対象銘柄となっていない理由として考えられるのは、iFreeNEXT インド株インデックスが現物ではなく先物により運用されている点です。この運用方法が「デリバティブ

    iFreeNEXT インド株インデックスは新NISAの成長投資枠で買えますか?
    usaku
    usaku 2023/11/17
  • ajaxの際に form.serialize で一括送信できる件 - 技術ブログ

    今までバカな事していた。ajaxでpostとかgetする際に、いちいち各inputの値とかを取得していたんだけどそんなことしなくてもform.serializeで一発だった。 javascript function postForm(btn) { $.ajax({ type: "post", url: "/test.php", data: $(btn.form).serialize() + '&param=1', success: function(json) { // 成功時の処理 } }); } html <form> .. <input type="button" value="送信" onclick="postForm(this)" /> </form> これでformの値をpostしてやるとphp側でうまく配列として取得できる。 serializeすると &xxx=xxx の形式

    ajaxの際に form.serialize で一括送信できる件 - 技術ブログ
    usaku
    usaku 2023/11/14
  • Auth.jsを完全に理解する (基本編) #1 - Qiita

    はじめに この記事はAuth.jsがどのようなものか,どのように実装すればいいかなどをドキュメントを要約しながら紹介するものです. Auth.jsは2024/02/19現在ドキュメント整備中です.現在のドキュメントとは内容が異なる場合があります.この記事では旧ドキュメントの内容も交えて解説しています. Auth.jsとは? (https://authjs.dev/ より) Auth.js is a complete open-source authentication solution for web applications. Check out the live demos of Auth.js in action: Next.js SvelteKit SolidStart Auth.jsはwebアプリのための完全なオープンソース認証ソリューションです.その特徴として, 簡単に OAu

    Auth.jsを完全に理解する (基本編) #1 - Qiita
    usaku
    usaku 2023/11/10
  • MySQLで利用可能な整数型について解説!int(11)のカッコに設定された数値って何? | ポテパンスタイル

    MySQLでデータサイズが決まるのはint, tinyintなどのデータ型 まず結論として、MySQLで整数型のデータサイズが決まるのは「データ型」に何を指定したかで決まります。 MySQLの整数型には5種類のデータ型が存在する MySQLには整数型として下記の5種類が提供されています。 tinyint 符号あり:-128 ~ 127 符号なし:0 ~ 255 smallint 符号あり:-32768 ~ 32767 符号なし:0 ~ 65535 midiumint 符号あり:-8388608 ~ 8388607 符号なし:0 ~ 16777215 int 符号あり:-2147483648 ~ 2147483647 符号なし:0 ~ 4294967295 bigint 符号あり:-9223372036854775808 ~ 9223372036854775807 符号なし:0 ~ 1844

    usaku
    usaku 2023/11/10
  • EclipseからSubversionに共用しようとしたら失敗した話 | わかすくしゅき

    EclipseからSVNのリポジトリに共用しようとしたら、 svn: E155000: 'C:\Users\username\workspace\projectname' is already a working copy for a different URL こんなエラーが。 調べてみると、 https://teratail.com/questions/7621 がヒットしますが、自己解決しているのみ。 こういう場所は、自己解決した場合でも後進の為に解決方法を書いておくのが常じゃないですか。 更に少し調べると。 https://serverfault.com/questions/546738/subversion-receiving-error-is-already-a-working-copy-for-a-different-url ここにありました。 どうやら、別のリポジトリに接続

    EclipseからSubversionに共用しようとしたら失敗した話 | わかすくしゅき
    usaku
    usaku 2023/11/09
  • PHPStan導入のすすめ - Hajimari Tech Blog| 株式会社Hajimari

    こんにちは! 株式会社Hajimari21卒エンジニアの古田 鏡です。 普段は、TUKURUS事業部(旧PIECE事業部)で 自社プロダクトであるスタートアップ向けマッチングサイト構築パッケージPIECE (https://crowd.itpropartners.com/piece/)の開発や受託開発を行っています! ※2022年4月から事業部の方針変更により事業名が変更となりました! crowd.itpropartners.com 現在ジョインさせていただいている案件では、 組織のオンボーディングシステムの新規機能開発・システム統合等を担当させていただいております。 開発言語に関してはバックエンドでPHP(フレームワークはLaravel)を使っていて、 静的解析ツールPHPStanを導入しているのですが、 このツールが便利だったので今回はご紹介していきたいと思います! ●PHPの特徴 そ

    PHPStan導入のすすめ - Hajimari Tech Blog| 株式会社Hajimari
    usaku
    usaku 2023/11/08
  • クロスドメインでcookie書き込む方法 +クロスブラウザで - webネタ

    あるサイトから別ドメインのクッキーを書き込む。こういうクッキーは、サードパーティクッキーと呼ばれる。FirefoxとChromeはデフォルトでサードパーティクッキーが書き込めるようになっているが、IEとSafariが問題になる。IEはコンパクトポリシーというものを設定すればいけるが、Safariは出来ない。Safariはデフォルトで”知らないとサイトや広告のみCookieをブロック”となっている。でも、GoogleAdsenseとかは書き込めている。なので調べた。 目的 localhostにアクセスしたときsample.comのクッキーを書き込みたい。 もちろんクロスブラウザで。 (sample.comはhosts書き換えやるといい) ポリシーの設定 (P3P) (以下IE対策用) webサイトで個人情報などを取り扱う場合、ブラウザで設定されたポリシー設定とアクセスしているサイトのポリシー

    クロスドメインでcookie書き込む方法 +クロスブラウザで - webネタ
    usaku
    usaku 2023/11/08
  • サードパーティークッキーを使ったセッションの維持について - 技術ブログ

    異なるドメイン間でセッションのやり取りをしたい。 cookieの仕様で別ドメインのサーバーにはcookie(セッションID)が送信されない。つまり、ユーザーを特定できない。URLにSIDを埋め込む方法はあるが、これはこれでいろいろと問題がありそう。 そこでサードパーティークッキーを利用することになる。 理解したことのメモ サードパーティークッキーもJSONPもクロスドメインに関するという点では同じだけど、別物なのでごっちゃにしないこと。 サードパーティークッキーは別ドメインが発行したcookieのこと。 JSONPはajaxを使って別ドメインのデータを取得するための技術(サーバー側の設定が必要)のこと。 safariのデフォルトだとサードパーティークッキーを書き込むことができない。 (chrome、firefox、IE11ではimgタグ、iframeタグにて書き込めることを確認済み) IE

    サードパーティークッキーを使ったセッションの維持について - 技術ブログ
    usaku
    usaku 2023/11/08
  • サブドメインの異なるサービス間で cookie を共有する - Qiita

    https://www.nicovideo.jp // ニコニコ動画 https://live.nicovideo.jp // ニコニコ生放送 https://ch.nicovideo.jp // ニコニコチャンネル 例えば上記のように、異なるサブドメインにおいてもログインセッションなどのデータを共有したい場合があります。 セキュリティの都合上オリジン(<scheme>://<hostname>:<port>)の異なる場所と JavaScript 内でデータの送受信を行う場合はオリジン間リソース共有(CORS)の仕組みを利用する必要があります。 しかし、 CORS のような仕組みを信頼されうるサブドメインの違いだけで利用するのは面倒です。 今回は Cookie の仕様を用いて、データを共有出来るようにします。 要約 ;domain=example.com オプションを付けること。 doma

    サブドメインの異なるサービス間で cookie を共有する - Qiita
    usaku
    usaku 2023/11/08
  • ヘッドレス開発にもフレンドリー、コードからフローを学べるJWT認証方式!|千葉県船橋市のホームページ制作・マーケティングの株式会社ノベルティ

    1.ブラウザからID/パスワードなど、認証に必要なデータを送信 2.サーバーサイドはそれを受け取り、ユーザー認証をする 3.正しければトークンを含めた情報をブラウザへ返却する 4.返却された情報をローカルストレージまたはクッキーで保持 5.認証が必要な場面で、サーバーサイドへトークンを送る 6.認証されればトークンをデコードし、トークン情報を利用した処理を行う こちらがフローの簡略的な形です。 しかしこのままではふわっと概念的なものになってしまいますよね。 JWTはなぜセキュリティが担保されているか、どうしてトークンから特定の情報が取得できるのか、気になると思います。 そこで簡単なサンプルコードを用意しているので、詳しく見てみましょう。 コードで見るJWT認証 ※今回実装しているコードについて、例では簡易化していますが、番環境ではより厳密な実装が必要です。 ブラウザからID/パスワード

    ヘッドレス開発にもフレンドリー、コードからフローを学べるJWT認証方式!|千葉県船橋市のホームページ制作・マーケティングの株式会社ノベルティ
    usaku
    usaku 2023/11/07
  • iframe で複数の管理画面を1つの統一されたサイトに見せるパターンのまとめ - RAKSUL TechBlog

    こんにちは。エンジニアの二串です。普段はサーバサイドの開発をしていますが、今日は最近仕事で取り組んだフロントよりの話になっています。 iframe を使って複数の管理画面サイトをあたかも1つの統一されたサイトとして見せるパターンをまとめます。 iframe を使って別サイトをはめ込むことは簡単ですが、実際複数ページあるサイトをはめ込もうとすると、ただ iframe を使うだけでは力不足です。例えばiframe内でのページ遷移、高さ調整、パーマリンク等で問題を感じます。 今回紹介する tips のいくつかはインターネット上で見つけられますが、今回の複数管理画面を1つにマージするという視点でまとまった記事は見つけられなかったので、まとめたら便利なのではとおもい記事にまとめました。 コードスニペットを以下で掲載していますが、より詳しくはデモアプリも併せて見ていただければとおもいます。 背景 移行

    iframe で複数の管理画面を1つの統一されたサイトに見せるパターンのまとめ - RAKSUL TechBlog
    usaku
    usaku 2023/11/07