Welche Vor- und Nachteile kennen Sie von den polymorphen Beziehungen zwischen Ruby on Rails.Vor- und Nachteile von polymorphen Beziehungen zwischen Ruby on Rails
Antwort
Vorteile:
- Sie können ganz einfach
- Adaptable Beziehungen unvorhergesehener Umstände helfen Unterbringung etwas zu etwas verlinken
- Sehr einfache Beziehungen
- Groß für Systeme ad-hoc
Nachteile:
- Fremdschlüssel nicht praktisch
- Indizes umfassen eine weitere Dimension der Komplexität
- Beziehungen zwischen Tabellen schwer zu identifizieren, wenn STI mit
- Database diagramming Tools nicht
- nicht immer praktisch interpretieren kann für die Modelle verbinden
- Stark entmutigt für Systeme, bei denen die Datenintegrität verifiziert werden muss
Ich bin ein großer Fan von Beziehungen dieser Art für Datensätze, die bei Bedarf an eine große Anzahl von Dingen angehängt werden, z. B. einen Kommentar oder einen Annotationsdatensatz, der für eine Vielzahl von Datensätzen gelten kann.
Es ist nicht sehr gut für Situationen geeignet, in denen die Beziehung häufig in einem JOIN ausgeübt wird. Das heißt, die polymorphe Assoziation sollte nicht in der Mitte einer Beziehung zwischen Datensätzen stehen, sondern als etwas auf dem Umfang.
Können Sie näher ausführen, warum es nicht gut geeignet ist, um mitten in einer Beziehung zwischen Platten zu sein? Fremdschlüssel sind nicht praktikabel, aber die Integrität wird eher auf der Rails-Ebene als auf der DB behandelt, oder? – Turadg
Wenn Sie eine polymorphe Assoziation in der Mitte verwenden, haben Sie mindestens drei Komponenten für Ihre Join-Bedingungen, vier, wenn beide Beziehungen polymorph sind. Dies kann sich stark nachteilig auf die Performance auswirken, da die Indexgröße mit der Anzahl der Elemente im betroffenen Schlüssel erheblich zunehmen kann. Größere Indizes werden beim Aktualisieren erheblich teurer. Daher ist es vorteilhaft, nur das erforderliche Minimum zu indizieren. Nehmen Sie sich wie immer Zeit, um eine vorgeschlagene Datenbankstruktur mit großen Datenmengen zu vergleichen, die repräsentativ für Ihr System sind. – tadman
Sehr klare Antwort, danke. – Turadg
- 1. Ruby on Rails Beziehungen
- 2. Ruby On Rails Beziehungen - One to Many
- 3. Ruby on Rails wo Abfrage mit Beziehungen
- 4. Ruby on Rails: 4.2.0 Unterschiede zwischen Rails und bin/rails
- 5. Ruby on Rails, wo Abfrage mit Beziehungen und update_at vergleichen
- 6. Node.js vs Ruby on Rails
- 7. Ruby on Rails vs. Django
- 8. Vor- und Nachteile der Ruby-Ausnahmebehandlung
- 9. Was ist der Unterschied zwischen Ruby und Ruby on Rails?
- 10. Ruby on Rails polymorphe Assoziation
- 11. Ruby on Rails: Gemeinsame Methode zwischen Modellen
- 12. Ruby on rails und Node.js
- 13. Rake und Ruby on Rails
- 14. Ruby on Rails und CruiseControl.rb
- 15. Installationsproblem von Ruby on Rails
- 16. Ruby on Rails erhält Intervallwerte zwischen start_at und end_at
- 17. Ruby on Rails: Unterschied zwischen .html_safe und sanitize()
- 18. Curl on Ruby on Rails
- 19. Empfehlungen (und Unterschiede) zwischen verschiedenen Ruby on Rails-Produktions-Webservern
- 20. Ruby on Rails (Formular senden)
- 21. Ruby on Rails bietet
- 22. Ruby on Rails Libelle
- 23. Ruby on rails Pfadhelfer
- 24. Ruby On Rails Grundvariable
- 25. Ruby on Rails Unterschied zwischen Integration und Funktionsprüfung
- 26. Zeitumrechnung zwischen Ruby on Rails und Javascript umgekehrt?
- 27. LocalJumpError (Ruby on Rails)
- 28. Ruby on Rails Cache
- 29. AUTONOMEN_TRANSACTION: Vor- und Nachteile
- 30. Ruby on rails Verbindungsproblem
Will es nicht als Antwort geben, weil ich es nicht gelesen habe, aber das scheint ein ziemlich großer Artikel zu diesem Thema zu sein: http://robots.thoughtbot.com/post/159809241/whats-the -deal-with-rails-polymorphe-associations –