我的数据库中有 4 个表需要一个名为 "categories" 的字段。我怎样才能使这项工作?

4 tables in my DB need a field called, "categories". How can I make this work?

对于我的 RSS 聚合器,有四个 table 代表 rss 和 atom 提要及其文章。每个提要类型和条目类型将有零个或多个类别。为了不重复数据,我希望只有一个 table 类别。

我怎样才能做到这一点?

一种方法是将类别保持在一个单一 table - 例如category - 并为每个需要 0 个或多个类别关联的 entity/table 定义一个 X table:

rssFeedX 类别

rssFeedId INT FK -> rssFeed (id)
categoryId INT FK -> category (id)

atomFeedXCategory

atomFeedId INT FK -> atomFeed (id)
categoryId INT FK -> category (id)    

等等。

您可以为每个 table 中的两列定义主键,但也可以使用额外的标识列。使用 ORM 时,我还有一个额外的 identity/autoincrement 列(例如 XId INT),因此可以使用单个列来标识一行。