0

我有几个表,例如:

news:
id | title | description
1 | This is first title of news | This is description
2 | This is second title of news | This is second description

blog:
id | title | description
1 | This is first title of blog | This is description
2 | This is second title of blog | This is second description

还有10多张桌子。

我需要添加一个字段“some_state”,它可以有两个值:0 或 1。

所以我可以通过两种方式:

1)将此字段添加到每个表中;

2)创建新表,例如:

tables_some_state:
id | table_name | table_id | some_state
1 | news | 1 | 0
2 | news | 2 |1
3 | blog | 1 | 1
4 | blog | 2 | 1
...

并使用将此表左连接到我的查询中的每个表。

那么,就我而言,最佳实践是什么?

4

3 回答 3

3

只要它是一对一的关系(它就在这里),我就会将它添加到表格中。我认为通常将某些东西放在这样的单独表中的目的是建立多对一的关系。

于 2013-06-12T18:18:11.617 回答
2

将它们全部设为一张表并给它们一个“类型”列,然后将一列添加到所有它们中:

posts:
id | type | title | description | status
1 | news | This is the first title of news | This is the description | 0
2 | blog | This is the first title of blog | This is the description | 1
...
于 2013-06-12T18:17:05.750 回答
1

我个人的意见是创建一个新表并通过 id 将其他表上的列链接到它。这将允许一些数据库规范化/限制数据库冗余。您最终也可以稍后添加更多“状态”。如果你使用 InnoDB,你也可以添加一些外键。

于 2013-06-12T18:17:27.097 回答