2017-01-27 14 views
1

私の無知を許して、私はデータベースの慣習で最初の初心者です。データベースキーとの違反の危険はありますか?

これは私のSQLiteのコードである:(私のDBブラウザによって生成される自動)I手動DBブラウザを使用してDBに更新データを挿入しようと

CREATE TABLE `ResearchItems` (
`ID` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, 
`Name` TEXT NOT NULL, 
`Description` BLOB NOT NULL, 
`PreReq1` INTEGER, 
`PreReq2` INTEGER, 
`PreReq3` INTEGER); 

。 私の意図は、PreReqフィールドが同じDBの他の項目を指していることです。明らかに、それらが入力されると、私は決して、私がエントリを追加または削除することによって意図せずに接続が切断されることを望んでいません。これは保証されていますか?

また、何らかのデータ検証を追加するために追加できるユーティリティはありますか? PreReqのような値は、現在存在するキーでなければなりません。

答えて

2

あなたがforeign key constraintsをしたいかのように聞こえる:

CREATE TABLE ResearchItems (
    ID   INTEGER PRIMARY KEY, 
    Name  TEXT NOT NULL, 
    Description BLOB NOT NULL, 
    PreReq1  INTEGER REFERENCES OtherTable(PreReqID), 
    PreReq2  INTEGER REFERENCES OtherTable(PreReqID), 
    PreReq3  INTEGER REFERENCES OtherTable(PreReqID) 
); 
+0

"OtherTableは、" DB内のテーブルの名前ですか? "PreReqID"はそのテーブル内のフィールドの名前ですか? –

+0

ドキュメントをお読みください。 –

+0

ああ、ありがとう!リンクに気付かなかった。 –

関連する問題