2017-01-04 4 views
1

こんにちは、これはjsonのようなものですが、今度はjsonをsqlite androidに保存しますが、 このjsonのテーブルを作成する方法を混乱させます。しかし、私たちがテーブルsqliteを作成する際には、整数型のデータがプライマリキーである必要があります。sqlite androidの主キーとしてテキストまたは文字列を使用することができます

UserIdを主キーとして使用したいが、これはtext/string型です。

私の質問は、文字列/テキストのテーブルを主キーとして作成できますか? このjsonをsqliteに保存する別の方法がある場合は、その方法を教えてください。ありがとうございます...

[ 
     { 
     "UserId": "3c652fc4-5dc4-4fa5-8c07-d27b0b657823", 
     "Nationality": "ID", 
     "Image": null, 
     "IsAlreadyOnTextoaser": true, 
     "IsAlreadyOnRequest": false, 
     "LastActive": null, 
     "LastActiveResume": "0 Days Ago", 
     "FirstName": "dwi", 
     "LastName": "wahyudi" 
     }, 
     { 
     "UserId": "cbb1f8bd-8016-4bc6-abd1-701fb353293d", 
     "Nationality": "ID", 
     "Image": null, 
     "IsAlreadyOnTextoaser": true, 
     "IsAlreadyOnRequest": false, 
     "LastActive": null, 
     "LastActiveResume": "0 Days Ago", 
     "FirstName": "Wildan", 
     "LastName": "Rachman" 
     } 
    ] 
+0

プライマリキーは文字列として作成できます。これを試すhttp://stackoverflow.com/questions/7591492/is-it-possible-to-apply-primary-key-on-the-text-fields-in-android-database –

答えて

2

Androidフレームワークの多くの部分では、データに_idという一意の整数列があると想定しています。

(このような列を取得する最も簡単な方法は、自動インクリメントの主キーにすることですが、データに既にそのような列がある場合、または他の値から一意の値を簡単に計算できる場合は、明示的なものが必要です。)

PRIMARY KEY制約は、どの列が行を識別するかを文書化しますが、実際の技術的効果はNOT NULLおよびUNIQUEと同じです。したがって、テーブルには複数の候補キーを持つことができます。

CREATE TABLE MyTable (
    _id  INTEGER PRIMARY KEY,  -- autoincrementing, for Android 
    UserId TEXT NOT NULL UNIQUE, -- actual PK 
    FirstName TEXT, 
    [...] 
); 
関連する問題