У меня есть возможность написать два разных формата для структуры базы данных:
Article
-------
ArticleID int FK
Article_Tags
------------
ArticleTagID int FK
ArticleID int FK
TagText varchar(50)
или
Article
-------
ArticleID int PK
Article_Tags
------------
ArticleTagID int PK
ArticleID int FK
TagText varchar(50) FK
Tag
---
TagText varchar(50) PK
Если я хочу получить список всех тегов в базе данных, я мог бы использовать:
select distinct tagtext from article_tags
или
select tagtext from tag
Первая ситуация довольно проста. Возможно, это ускорилось бы, если бы я правильно его проиндексировал. Второе немного сложнее, потому что я должен постоянно удалять теги без соединений. Представьте себе довольно большую систему, которая была бы лучше.