タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

MySQLと設計に関するjsstudyのブックマーク (8)

  • ユーザ情報を保存する時のテーブル設計 - そーだいなるらくがき帳

    はじめに ※この発言は個人の見解であり、所属する組織の公式見解ではありません 用法用量を守り、個人の責任で業務に投入してください 参考資料 2024/02/14追記 実際のテーブル設計の詳細はこちらを参考にどうぞ。 agilejourney.uzabase.com 要件 User情報を保存するときにどのようなテーブル設計を行うか 今北産業で頼む テーブルに状態を持たせず状態毎のテーブルを作る 状態が変わればレコードを消して別のtableに作る tableの普遍的な情報は別に持たせる 僕の考えた最強のDB設計 PostgreSQLをベースの雑なER図を作った。 これを元に話を進める。 table構成 users 親tableであり、すべてのユーザはここに属する。 基はINSERTのみでUPDATE、DELETEを考慮しない。 user_detail userに付随する詳細の情報がここに登録

    ユーザ情報を保存する時のテーブル設計 - そーだいなるらくがき帳
    jsstudy
    jsstudy 2019/05/01
    2018-05-01 ・テーブルに状態を持たせず状態毎のテーブルを作る・状態が変わればレコードを消して別のtableに作る・tableの普遍的な情報は別に持たせる [users]親table、基本はINSERTのみでUPDATE、DELETEを考慮しない。
  • MySQLの文字コードをutf8mb4に変更 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    MySQLの文字コードをutf8mb4に変更 - Qiita
    jsstudy
    jsstudy 2018/11/16
    ※既存のDBの文字コードを変える場合は、utf-8から変える場合は、文字化けは置きないが、他の文字コードの場合は文字化けする可能性があるので注意。
  • MySQL の文字コードについてチョット調べた | ごみばこいん

    MySQL 使ってて utf8_unicode_ci や utf8_general_ci とか mb4 …? とプチ事故が起きたので解消するべく調べた。 照合順序とは 「utf8_general_ci」といった文字コードの指定してるっぽいやつは、文字列カラムにおけるコレーション(=照合順序)と呼ばれる。ここで指定された値によって、MySQL が文字列を解釈したり比較を行うようになっている。 表記は 文字コード_文字セット名_比較方法(※特殊なものとして *_bin もある) 文字コード utf8mb4 とか utf8 とか cp932 とか 言文字セット名 japanese とか german とか Unicodeに限り、japanese はないので general か unicode か bin を選ぶ。 (言語によって文字の特殊性があるらしく、その言語別の定義があるが日語はない) 比

    jsstudy
    jsstudy 2018/11/16
    utf8 と utf8mb4 の違い→絵文字=4バイト文字=utf8mb4を選択。bin と general_ci と unicode_ciの違い→半角全角の比較、大文字小文字の比較、ひらがなカタカナの比較=日本語ならbinかgeneral_ciを選択。全部区別するならbinでOK
  • MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ

    MySQLUTF-8 で使おうと思ってハマりがちなのは charset utf8 を指定してしまうことです。 MySQLUTF-8 には歴史的事情により utf8 と utf8mb4 の二つあります。 UTF-8 は1バイト〜4バイトで1文字が構成される文字コードですが、MySQL の utf8 は4バイト文字を扱うことができません。ハマりたくなければ utf8mb4 を使いましょう。 utf8 を使ってしまった場合に4バイト文字がどのように扱われるか、自分でもうろ覚えだったのでメモしておきます。 登録 接続が utf8mb4 でカラムが utf8mb4 あたりまえですが、そのまま登録されます。 mysql> insert into utf8mb4 (c) values ('美味しい🍣と🍺'); mysql> select * from utf8mb4; +--------

    MySQL で utf8 と utf8mb4 の混在で起きること - tmtms のメモ
    jsstudy
    jsstudy 2018/11/16
    UTF-8 は1バイト〜4バイトで1文字が構成される文字コードですが、MySQL の utf8 は4バイト文字を扱うことができません。ハマりたくなければ utf8mb4 を使いましょう。→絵文字(寿司やビールのマークなど)が4バイト文字
  • 真偽値の判定に、tinyint(1)を使うか、bool,boolean型を使うか、bit(1)を使うか、enumを使うか - ぽひゅっとメモ

    MySQLレベルでの話。 最近SQLの細かい挙動とか、しっかり把握しきれてないなーとか、 一度覚えたことが年が経ってあやふやになってるところが多くある。 また勉強し直したい。 RDBMSとうか、KVSだのNoSQLだのDBのシステムによって大きく違うと思うけれど、 私はMySQLとちょっとPostgreSQLとかSQLiteとか触ったくらいなしょっぱい男です(先の言い訳)。 主に扱うのはMySQLで、そのくらいしかついていけません(わかるとは言いません)。 「MySQLってそうなんだ〜。Oracleだとこうなんだよー、きゃははー」とか言われても、しょんぼりとしかしません。 題。 Rails使ってると、マイグレーションファイルでDBのテーブル定義して、 rake db:migrateでマイグレーションファイルを元にテーブルが作成されちゃう。 ここで使うDBによって、うまいこと作られる型に差

    真偽値の判定に、tinyint(1)を使うか、bool,boolean型を使うか、bit(1)を使うか、enumを使うか - ぽひゅっとメモ
  • Mysqlのboolean型について調べてみた - Qiita

    はじめに Mysqlでbooleanという型を指定してテーブルが作れるので、 実際どういう扱いになっているのか調べてみました。 テストしたMysql ver. 5.1.73 boolean型でテーブルを作ってみる -- こんなのを作ってみる create table `bool_check` ( `bool` boolean ); mysql> create table `bool_check` ( -> `bool` boolean -> ) -> ; Query OK, 0 rows affected (0.06 sec) mysql> show create table bool -> ; +-------+-----------------------------------------------------------------------------------------

    Mysqlのboolean型について調べてみた - Qiita
  • 自分用メモ : mysqlで完全なbooleanを定義する - Qiita

    はじめに よくあるtinyint(1)でbooleanを表現できるとあるんだけど、実際には-1を入れられるのがなんだかなぁ、と思っていた。 unsignedなtinyint(1)なら入らないよね?と思って実験 素晴らしい実験をしてくれてる人がいた 実験結果 1より大きい値も入れられてしまうので、うーん・・という結果。しかも、0以外trueという訳でもなさそう。 enum型で定義すると、TRUE(1), FALSE(2)のようなものになってしまうし。桁だけでなく入れられる値をもっと制限出来る方法ないかなぁ、と思うけれど、データベースという特質上、「ロジカルな操作は他でやってよ」と思われても仕方がないかも、とも。 mysql> create table piyo ( -> flag tinyint(1) unsigned not null default false -> ); Query O

    自分用メモ : mysqlで完全なbooleanを定義する - Qiita
  • MySQLに真偽値を格納する場合はbit(1)型のフィールドが最適 - Qiita

    毎度、自ブログからの転載です。 つい最近、自作のWordPressカスタムデータベース管理プラグイン「Custom DataBase Tables」への問い合わせで bit型フィールド についてデフォルト値を指定するとテーブル作成がコケるという不具合報告があって、 MySQLのbit型フィールド について詳しく調べることになった。その結果、色々と新たにわかったことがあったので、その備忘録も兼ねて記事を書いておこうかと。 もともと私は、MySQLのbit型はboolean(bool)型と同様に tinyint(1)のシノニム(フィールド形式のエイリアスみたいなもの) と理解していたので、フィールドの仕様もtinyint(1)と同じだと認識していたんだが、実際は違っていたんだなこれが。 各フィールドの仕様は下記のようになってた(ちなみにMySQLのバージョンは5.6.16)。 フィールド型 表

    MySQLに真偽値を格納する場合はbit(1)型のフィールドが最適 - Qiita
  • 1