タグ付けされた質問 「datatypes」

保存するデータのタイプ(文字列、日付、数値など)を指定します。


2
タイムスタンプをPostgreSQLに最適に保存する方法は?
私はPostgreSQL DBの設計に取り組んでおり、タイムスタンプをどのように保存するのが最善か疑問に思っています。 仮定 異なるタイムゾーンのユーザーは、すべてのCRUD機能にデータベースを使用します。 私は2つのオプションを見ました: timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC') bigint NOT NULL DEFAULT 以下のためにtimestamp私は、INSERTモーメントの正確な(UTC)のタイムスタンプを表すことになり、文字列を送信します。 以下のためにbigint私はまったく同じことを格納し、その数形式のでしょう。(タイムゾーンの問題はミリスがサーバーに引き渡される前に処理されるため、UTCでは常にミリスです。) を格納するbigintことの主な利点の1つは、正しい形式のタイムスタンプの受け渡しが単純な数値よりも複雑であるため(Unix Epocからのミリ秒)、格納および取得が容易になることです。 私の質問は、どちらが最も柔軟な設計を可能にし、各アプローチの落とし穴になる可能性があるものです。

2
型フィールドのINTまたはCHAR
テーブルまたはTypeフィールドの最適な設計は何ですか?言い換えれば、このスキーマが与えられた場合:intchar(1) create table Car ( Name varchar(100) not null, Description varchar(100) not null, VehType .... not null ) それがために(パフォーマンス的に)、より効率的でVehTypeあることをintかchar(1)?5種類の車があり、0〜4の増分値を使用するか、タイプの文字(たとえば、「v」、「s」、「c」、「t」、「m」)を使用する必要があるとします。 それ以上の場合は、別のTypeテーブルを使用して外部キー関係を作成しますが、その必要性はわかりません。 私がいることがわかりsys.objectsカタログビューが文字使用するtypeフィールドを。その理由はありますか?私はただここで薄い空気をつかんでいますか、それは私がより快適なものですか?


2
MySQLのVARCHARデータ型とTEXTデータ型の違いは何ですか?
バージョン5.0.3(VARCHARを65,535バイトにすることができ、末尾のスペースの切り捨てを停止した)の後、これら2つのデータ型に大きな違いはありますか? 私は違いのリストを読んでいたのですが、注意すべき点は2つだけです。 BLOBおよびTEXTカラムのインデックスの場合、インデックスプレフィックス長を指定する必要があります。CHARおよびVARCHARの場合、プレフィックスの長さはオプションです。セクション7.5.1「カラムインデックス」を参照してください。 そして BLOB列とTEXT列にDEFAULT値を含めることはできません。 TEXTデータ型にはこれら2つの制限があるため、なぜvarchar(65535)で使用するのでしょうか?一方のパフォーマンスが他方のパフォーマンスに影響しますか?



4
varcharデータ型がUnicode値を許可するのはなぜですか?
varchar列を持つテーブルがあります。以下に示すように、商標(™)、著作権(©)およびその他のUnicode文字を許可しています。 Create table VarcharUnicodeCheck ( col1 varchar(100) ) insert into VarcharUnicodeCheck (col1) values ('MyCompany') insert into VarcharUnicodeCheck (col1) values ('MyCompany™') insert into VarcharUnicodeCheck (col1) values ('MyCompany░') insert into VarcharUnicodeCheck (col1) values ('MyCompanyï') insert into VarcharUnicodeCheck (col1) values ('MyCompany') select * from VarcharUnicodeCheck しかし、varcharの定義では、Unicode以外の文字列データが許可されています。ただし、Trademark(™)およびRegistered(®)シンボルはUnicode文字です。定義はvarcharデータ型のプロパティと矛盾しますか?最初のリンクと2つ目のリンクを読んだ。しかし、定義がユニコード文字列以外の値のみを許可すると言っているときに、ユニコード文字列を許可する理由を理解できませんでした。

2
tinyint(N)の意味は何ですか?
数値データ型で引数の長さを使用する場合、私が知る限り、これは表示幅を指定します。 私は次を試しました: mysql> create table boolean_test (var1 boolean, var2 tinyint); Query OK, 0 rows affected (0.10 sec) mysql> show create table boolean_test; +--------------+------------------------- | Table | Create Table +--------------+------------------------- | boolean_test | CREATE TABLE `boolean_test` ( `var1` tinyint(1) DEFAULT NULL, `var2` tinyint(4) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1 | +--------------+--------------------------- …

1
ctidをページ番号と行番号に分解するにはどうすればよいですか?
テーブルの各行には、行の物理的な場所を表すタイプのシステム列が ctidありますtid。 create table t(id serial); insert into t default values; insert into t default values; select ctid , id from t; ctid | id :---- | -: (0,1)| 1 (0,2)| 2 ここに dbfiddle ctid最も適切なタイプ(例えばinteger、bigintまたはnumeric(1000,0))からページ番号だけを取得する最良の方法は何ですか? 私は考えることができる唯一の方法は非常に醜いです。

2
一時テーブルでvarcharサイズは重要ですか?
ストアドプロシージャの一時テーブルのvarchar(255)すべてのvarcharフィールドに使用することについて、妻の仕事について議論があります。基本的に、一方のキャンプは定義が変更されても常に機能するため255を使用し、もう一方のキャンプは潜在的なパフォーマンス向上のためにソーステーブルのサイズを維持したいと考えています。 パフォーマンスキャンプは正しいですか?他に影響はありますか?彼らはSQL Serverを使用しています。

3
BONYEANをTINYINT(1)よりも使用する利点は何ですか?
MySQLマニュアルから、次のように書かれています: ブール、ブール これらのタイプはTINYINT(1)の同義語です。値ゼロは偽と見なされます。ゼロ以外の値は真と見なされます。 0デフォルト値としてBOOLEAN列を作成しました。次に、値をに更新します2。論理的には、私は、MySQLはどちらか受け入れることを期待する0か1、それはboolean型であるため。しかし、MySQLはエラーを発行したり、アップデートを実行することを妨げたりしませんでした。 BOOLEANがTINYINT(1)とまったく同じように機能する場合、TINYINT(1)を使用するかBOOLEANを使用するかに違いはありますか?
16 mysql  datatypes 


1
上位のデータベースプラットフォームで符号なし整数型が利用できないのはなぜですか?
データベースは通常、さまざまなデータ型とカスタムの長さで非常にカスタマイズ可能です。 unsigned intPostgreSQLとMS SQL Serverのどちらからも利用できない型を使用する構文を探しているので、私は驚きました。MySQLとOracleのようです。 これは明白な省略のように見えます-次に最適なパフォーマンスオプションはlong / bigint(8バイト整数)ですが、完全に不要な場合があります!ネイティブのunsigned intサポートを含めないことを選択する理由を誰もが知っていますか?

2
ユーザー認証(役割と権利)モジュールの設計
Delphi UIアプリケーションのバックエンドとなるMS SQL Serverデータベースのユーザー認証モジュールをモデル化しようとしています。基本的に、ユーザーが1つのグループにのみ所属するユーザーアカウントが必要です。グループは、「n」個の権利を持つことができます。 また、ユーザーがアプリケーション設定(たとえば、90日ごと)に基づいてパスワードを変更する必要があるため、パスワード履歴をデータベースに追加します。 また、ユーザーがログインおよびログアウトするたびにイベントを記録したいと思います。私はこれを将来の追加イベントに拡張するかもしれません。 以下に、私の最初のクラックを見つけます。これを行うのはこれが初めてなので、改善するための提案があれば教えてください。 役割ベースのセキュリティの追加属性とパスワードルール/有効期限の制約が必要ですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.