Mam istniejącą aplikację internetową i chcę dodać funkcję tagu, aby użytkownicy mogli oznaczać istniejące obiekty. Pytanie brzmi, czy powinienem dodać kolumnę znaczników do każdego obiektu? czy powinienem go znormalizować i użyć tabeli znaczników, w której każdy obiekt będzie miał kolekcję znaczników? Pochylam się do tego drugiego, ponieważ czuje się czystszy, łatwiejszy do raportowania i łatwiejszy do stworzenia chmury tagów. Ale ponieważ wiem, że zostało to rozwiązane 1000 razy, chciałem zapytać i zobaczyć, czy czegoś brakuje.Jak modelować znaczniki w bazie danych?
9
A
Odpowiedz
6
Czy przewidziano użytkowników, którzy muszą powiązać więcej niż jeden znacznik z obiektem?
Jeśli nie, dodaj TAG_ID fk do tabeli OBJECT. W przeciwnym razie, to potrzebne są trzy tabele w sumie poprawnie modelować wiele-do-wielu relacji:
PRZEDMIOT
- OBJECT_ID (pk)
OBJECT_TAG_XREF
- OBJECT_ID (pk, fk do OBJECT)
- TAG_ID (pk, fk do TAG)
TAG
- TAG_ID (pk)
4
Tak, należy go normalizować. "Kolumna tagu" będzie obsługiwać tylko jeden tag na rekord lub będzie miała ohydną wydajność wyszukiwania.
2
Zdecydowanie znormalizować. Tabela dla znaczników, tabela dla istniejących obiektów i tabela powiązań między nimi.
Powiązane problemy
- 1. Jak modelować niestandardowy typ w relacyjnej bazie danych?
- 2. jak modelować rabat na przedmioty w bazie danych?
- 3. Jak przechowywać znaczniki UII w bazie danych podstawowych?
- 4. Reprezentacja złożonej zaplanowanej rekurencji w bazie danych
- 5. Jak wyświetlić znaczniki HTML zapisane w bazie danych za pomocą Symfony 2 i Twig
- 6. Jak modelować TimeField w Django?
- 7. Jak modelować w Java EE?
- 8. Jak modelować godziny otwarcia w RDF
- 9. Wstawianie rekordów zbioru danych w bazie danych
- 10. Jak modelować mieszaninę 3 norm w PyMC?
- 11. Jak przechowywać ostrzeżenia MySQL w bazie danych?
- 12. Jak przechowywać rok w bazie danych?
- 13. Jak scalić zmiany w bazie danych Drupal
- 14. Jak zmienić właściciela tabeli w bazie danych
- 15. jak zaimplementować wyszukiwanie pełnotekstowe w bazie danych
- 16. Jak przechowywać obraz w bazie danych SQLite
- 17. Jak najlepiej reprezentują adresów w bazie danych
- 18. Jak dodać datę w bazie danych sqlite
- 19. jak liczyć wartości poziome w bazie danych?
- 20. Html w mojej bazie danych!
- 21. Przewidywanie brakujących wartości danych w bazie danych
- 22. Android istnieje() w bazie danych?
- 23. MySQL typ danych w bazie
- 24. Kwerendy hibernacji w bazie danych
- 25. Zachowaj ustawienia w bazie danych
- 26. Zwiększanie licznika w bazie danych
- 27. Jak utrzymać strukturę danych wykresu w relacyjnej bazie danych?
- 28. Jak przypisać wartość logiczną modelować
- 29. Jak modelować kwoty pieniężnej w Javie
- 30. Jak modelować relacje encji w GAEJ?
Jak ta zmiana związać przywieszki do użytkowników? Czy OBJECT_ID stanie się USER_ID? –
@JuniperAsh: Będziesz musiał dodać kolumnę 'user_id' do' OBJECT_TAG_XREF' - tak samo jak pozostałe dwie kolumny, klucz podstawowy i klucz obcy do tabeli użytkowników. –
Ma dużo więcej sensu! Dziękuję Ci! –