【发布时间】:2014-05-03 09:41:40
【问题描述】:
我有一个帖子表,可以是视频帖子、文字帖子或图片帖子,并且帖子属于一个组。我认为多态关系是正确的方法,但我的表看起来有点奇怪。
我的帖子表:
+---------------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------------+------------------+------+-----+---------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| postable_id | int(10) unsigned | NO | | NULL | |
| postable_type | varchar(255) | NO | | NULL | |
| group_id | int(10) unsigned | NO | MUL | NULL | |
| upvotes | int(10) unsigned | NO | | 0 | |
| downvotes | int(10) unsigned | NO | | 0 | |
| created_at | timestamp | NO | | 0000-00-00 00:00:00 | |
| updated_at | timestamp | NO | | 0000-00-00 00:00:00 | |
+---------------+------------------+------+-----+---------------------+----------------+
text_posts 表:
+------------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| title | varchar(130) | NO | | NULL | |
| body | text | NO | | NULL | |
| created_at | timestamp | NO | | 0000-00-00 00:00:00 | |
| updated_at | timestamp | NO | | 0000-00-00 00:00:00 | |
+------------+------------------+------+-----+---------------------+----------------+
video_posts 表:
+------------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+------------------+------+-----+---------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| title | varchar(130) | NO | | NULL | |
| path | varchar(255) | NO | | NULL | |
| body | varchar(255) | YES | | NULL | |
| created_at | timestamp | NO | | 0000-00-00 00:00:00 | |
| updated_at | timestamp | NO | | 0000-00-00 00:00:00 | |
+------------+------------------+------+-----+---------------------+----------------+
picture_posts 表:
+-------------+------------------+------+-----+---------------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+------------------+------+-----+---------------------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| path | varchar(255) | NO | | NULL | |
| body | varchar(255) | YES | | NULL | |
| is_external | tinyint(1) | NO | | NULL | |
| created_at | timestamp | NO | | 0000-00-00 00:00:00 | |
| updated_at | timestamp | NO | | 0000-00-00 00:00:00 | |
+-------------+------------------+------+-----+---------------------+----------------+
我查看了来自 laravel.com 的示例。它指出“多态关系允许一个模型在一个关联上属于多个其他模型。”但在这种情况下,我的“帖子”不应该属于“视频帖子”或“文本帖子”等。而是'视频帖子'或类似内容应属于'帖子'。如何改进我的表格??
【问题讨论】: