2012-05-13 2 views
0

テーブルをセットアップするときに、 'name'属性をvarcharとして宣言してこれを検証ルールにするか、これはデータ型を定義するだけですか?VARCHARまたはINTは検証ルールですか?

CREATE TABLE `categories` (
    `id` int(11) NOT NULL auto_increment, 
    `name` varchar(200) NOT NULL, 
    `user_id` int(11) NOT NULL, 
    PRIMARY KEY (`id`) 
); 

私が混乱していることは、VARCHARがデータ型、妥当性検査ルール、またはこれらの両方を設定するかどうかです。ですから、誰かがINTを入力できないので、VARCHARは検証ルールですか?

答えて

0

これらのフィールドに格納するデータのタイプによって異なりますが、これは使用すべきデータタイプを定義するものです。

例:nameフィールドは、INT型とすることができない文字(文字列リテラル)とハンスを格納し、SQLにCHAR又はVARCHAR又はNVARCHAR

+0

私が混乱しているのは、VARCHARがデータ型、検証規則、またはこれらの両方を設定するかどうかです。ですから、誰かがINTを入力できないので、VARCHARは検証ルールですか? – user1392324

+0

格納されているデータは文字列型なので、そのフィールドのデータ型としてVARCHARを選択する必要があります。また、データ型としてVARCHARを設定した場合は、あなたのSQLエンジンは、そのフィールドに間違ったタイプのデータを置くことができないことを確かめます...これは確かな検証です。これがアイデアをクリアしたいと思っています。 – Rahul

0

は、それが唯一のデータ型を定義しているSTRINGタイプでなければならないであろう。間違ったデータ型が渡された場合、サーバーの設定によっては、データのimplisit変換が実行されます(ほとんどの場合)。または、クエリが拒否されます(例:MySQLのSTRICTモード)。データ検証は、通常、アプリケーションまたはトリガーで実行されます。

関連する問題