Projektowanie architektury bazy danych tagów T-SQL?

Scenariusz

Buduję bazę danych zawierającą szereg różnych tabel. Składają się one z tabeli KOMENTARZE, tabeli BLOGS i tabeli ARTYKUŁÓW. Chcę móc dodawać nowe elementy do każdej tabeli i oznaczać je tagami od 0 do 5, aby pomóc użytkownikowi w wyszukiwaniu konkretnych informacji, które są łatwiejsze.

Początkowe przemyślenia na temat architektury

Moim pierwszym zamysłem było stworzenie scentralizowanej tabeli TAGÓW. Ta tabela wyświetli wszystkie dostępne znaczniki, używając pola TagID i pola TagName. Ponieważ każdy element może mieć wiele znaczników, a każdy znacznik może mieć wiele elementów, potrzebowałbym relacji WIELE DO WIELU między każdą tabelą artykułów i tabelą TAGÓW.

Na przykład:

Wiele KOMENTARZY może mieć wiele TAGÓW. Wiele TAGÓW może mieć wiele UWAG.

Wiele artykułów może mieć wiele TAGÓW. Wiele TAGÓW może mieć wiele artykułów.

itp.....

Obecne zrozumienie

Z wcześniejszych doświadczeń rozumiem, że sposobem implementacji tej struktury w T-SQL jest posiadanie tabeli łączącej między tabelą KOMENTARZE a tabelą TAG. Ta łącząca tabela zawierałaby CommentID i TagID, a także własny unikalny CommentTagID. Ta struktura miałaby również zastosowanie do wszystkich innych elementów.

pytania

Po pierwsze, czy jest to właściwy sposób na wdrożenie takiej architektury bazy danych? Jeśli nie, jakie inne metody byłyby wykonalne? Ponieważ baza danych będzie w końcu zawierać wiele informacji, muszę zapewnić jej skalowalność. Czy jest to skalowalna implementacja? Gdybym miał dużo tych tabel, czy ta architektura spowodowałaby, że operacje CRUD byłyby bardzo powolne? Czy powinienem używać identyfikatorów GUID lub zwiększających INT dla pól ID?

Pomoc i sugestie będą bardzo mile widziane.

Dziękuję Ci.

questionAnswers(3)

yourAnswerToTheQuestion