2011-07-03 16 views
-3

をCREATE理解:SHOW CREATE TABLE userprofile_userprofileからMySQLは、私は、次のDjangoのモデル持っTABLE構文

class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    full_name = models.CharField(max_length=100) 
    network = models.ForeignKey(Network) 
    positions = models.ManyToManyField(Position, through ='Timestamp', blank=True) 
    featured_video = models.ForeignKey(VideoInfo, blank=True, null=True) 

を、私は、次のMySQLの出力を得る:

| userprofile_userprofile | CREATE TABLE `userprofile_userprofile` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `user_id` int(11) NOT NULL, 
    `full_name` varchar(100) NOT NULL, 
    `network_id` int(11) NOT NULL, 
    `featured_video_id` int(11) DEFAULT NULL, 
    `bio` longtext NOT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `user_id` (`user_id`), 
    KEY `userprofile_userprofile_fb2a452b` (`network_id`), 
    KEY `userprofile_userprofile_58bbe944` (`featured_video_id`), 
    CONSTRAINT `featured_video_id_refs_id_b7c2ab56` FOREIGN KEY (`featured_video_id`) REFERENCES `userprofile_videoinfo` (`id`), 
    CONSTRAINT `network_id_refs_id_f5c27879` FOREIGN KEY (`network_id`) REFERENCES `network_network` (`id`), 
    CONSTRAINT `user_id_refs_id_da7416c6` FOREIGN KEY (`user_id`) REFERENCES `auth_user` (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=31034 DEFAULT CHARSET=latin1 | 

ここでやって最後の7行は何?彼らはどんな意味を持っていますか?

  • ​​
  • key
  • constraint
  • engine=InnoDB
  • auto-increment=31034
+4

-1先行研究はない。上記のすべては、MySQLのドキュメントでカバーされています。ドキュメンテーションに答えられていないさらに深い質問がある場合、それらは良いSOの質問をするかもしれません。この一般的な洗濯物リストはありません。 –

答えて

2
  • キーインデックス
  • を作成して
  • ユニークなキーは、上記の列に一意の値を適用するインデックスを作成しています。
  • constraint ...外部キーは外部キー参照を作成しており、参照されたテーブルの にすでに存在する値のみを挿入します。
  • auto_increment 開始auto_increment 列の値を設定します。