Stackoverflow Datenbankdesign [geschlossen]

8

Kann jemand empfehlen oder anzeigen, wie Stack Overflow sein Datenbankdesign für die Benutzer / Fragen / Antworten / Benachrichtigungen durchgeführt hat.

Ich mache mir keine Sorgen über die Anmeldung / Anmeldung.

    
Sahan 30.04.2015, 08:53
quelle

1 Antwort

26

Um eine allgemeine Idee zu erhalten, können Sie sich den Stack Exchange Data Explorer ansehen, der es Ihnen erlaubt, die Datenbank abzufragen. Er hat auch ein Datenbankschema auf der rechten Seite.

Ссылка

Weitere Informationen finden Sie hier

Ссылка

Top User made Queries sind hier

Ссылка

Schemaaufschlüsselung

Beiträge

  • Id
  • PostTypeId (aufgeführt in der Tabelle PostTypes )
    1. Frage
    2. Antwort
    3. Verwaistes Tag-Wiki
    4. Tag-Wiki-Auszug
    5. Tag Wiki
    6. Moderator-Nominierung
    7. "Wiki-Platzhalter" (scheint nur die Wahlbeschreibung zu sein)
    8. Privilege wiki
  • AcceptedAnswerId (nur vorhanden, wenn PostTypeId 1 ist)
  • ParentID (nur vorhanden, wenn PostTypeId 2 ist)
  • CreationDate
  • Score
  • ViewCount
  • Body
  • OwnerUserId (nur vorhanden, wenn der Benutzer nicht gelöscht wurde; immer -1 für Tag-Wiki-Einträge (d. h. der Community-Benutzer besitzt sie))
  • OwnerDisplayName
  • LastEditorUserId
  • LastEditorDisplayName ="Rich B"
  • LastEditDate ="2009-03-05T22: 28: 34.823" - Datum und Uhrzeit der letzten Bearbeitung des Posts
  • LastActivityDate ="2009-03-11T12: 51: 01.480" - Datum und Uhrzeit der letzten Aktivität auf dem Post. Bei einer Frage könnte dies der Post sein, der gerade bearbeitet wurde, eine neue Antwort wurde gepostet, eine Prämie wurde gestartet usw.
  • Title
  • Tags
  • AnswerCount
  • CommentCount
  • FavoriteCount
  • ClosedDate (nur vorhanden, wenn der Post geschlossen ist)
  • CommunityOwnedDate (nur vorhanden, wenn der Beitrag Community-Wiki ist)

Benutzer

  • Id
  • Reputation
  • CreationDate
  • DisplayName
  • LastAccessDate
  • WebsiteUrl
  • Location
  • AboutMe
  • Views
  • UpVotes
  • DownVotes
  • EmailHash (jetzt immer leer)
  • AccountId (StackExchange-Netzwerkprofil-ID des Benutzers)
  • Age

Kommentare

  • Id
  • PostId
  • Score (Nur vorhanden, wenn Ergebnis & gt; 0)
  • Text , z. B .: "@Stu Thompson: Was für eine schreckliche Idee, du ahnungsloser Idiot!"
  • CreationDate , z.B.: "2008-09-06T08: 07: 10.730"
  • UserDisplayName
  • UserId (Optional. Nicht vorhanden, wenn der Benutzer gelöscht wurde.)

Abzeichen

  • Id
  • UserId , z. B .: "420"
  • Name , z. B .: "Lehrer"
  • Date , z. B .: "2008-09-15T08: 55: 03.923"
  • Class , 1 = Gold, 2 = Silber, 3 = Bronze
  • TagBased , true, wenn das Badge für ein Tag ist, andernfalls ist es ein benanntes Badge

CloseAsOffTopicReasonTypes

  • Id
  • IsUniversal
  • MarkdownMini - der Text des Schlussgrunds (in der Markdown-Syntax)
  • CreationDate
  • CreationModeratorId
  • ApprovalDate
  • ApprovalModeratorId
  • DeactivationDate
  • DeactivationModeratorId

PendingFlags

Trotz des Namens enthält diese Tabelle in der Tat eng verwandte Flags und Abstimmungen.

  • Id
  • FlagTypeId (aufgeführt in der Tabelle FlagTypes )

    13. Dosenflagge für den Verschluss 14. Abstimmung zum Schließen
    15. Abstimmung zum erneuten Öffnen

  • PostId
  • CreationDate
  • CloseReasonTypeId (aufgeführt in der Tabelle CloseReasonTypes )
  • CloseAsOffTopicReasonTypeId , wenn CloseReasonTypeId = 102 (off-topic) (aufgeführt in der Tabelle CloseAsOffTopicReasonTypes )
  • DuplicateOfQuestionId , wenn CloseReasonTypeId 1 oder 101 ist (altes Duplikat oder aktuelles Duplikat)
  • BelongsOnBaseHostAddress , um die Votes zu schließen und zu migrieren

PostFeedback

  • Id
  • PostId
  • IsAnonymous
  • VoteTypeId
  • CreationDate

PostHistory

  • Id
  • PostHistoryTypeId (aufgeführt in der Tabelle PostHistoryTypes )

    1. Initial Title - Der erste Titel, zu dem eine Frage gestellt wird.
    2. Initial Body - Der erste Rohtext, mit dem ein Beitrag eingereicht wird.
    3. Initial Tags - Die ersten Tags, zu denen eine Frage gestellt wird.
    4. Titel bearbeiten - Der Titel einer Frage wurde geändert.
    5. Body bearbeiten - Der Body eines Posts wurde geändert, der Rohtext wird hier als Markdown gespeichert.
    6. Tags bearbeiten - Die Tags einer Frage wurden geändert.
    7. Rollback-Titel - Der Titel einer Frage wurde auf eine vorherige Version zurückgesetzt.
    8. Rollback-Text - Der Text eines Posts wurde auf eine vorherige Version zurückgesetzt - der rohe Text wird hier gespeichert.
    9. Rollback-Tags - Die Tags einer Frage wurden auf eine vorherige Version zurückgesetzt.
    10. Post geschlossen - Ein Beitrag wurde für geschlossen erklärt.
    11. Post wieder geöffnet - Ein Beitrag wurde zur Wiedereröffnung gewählt.
    12. Beitrag gelöscht - Ein Beitrag wurde zur Entfernung gewählt.
    13. Post Undeleted - Ein Beitrag wurde für die Wiederherstellung gewählt.
    14. Post Locked - Ein Beitrag wurde von einem Moderator gesperrt.
    15. Post entsperrt - Ein Beitrag wurde von einem Moderator freigeschaltet.
    16. Gemeinschaft im Besitz - Ein Beitrag wurde Eigentum der Gemeinschaft.
    17. Post migriert - Ein Beitrag wurde migriert. ersetzt jetzt mit ID 35 und 36 (weg / hier)
    18.Frage zusammengeführt - Bei einer Frage wurde eine andere gelöschte Frage in sich selbst zusammengeführt.
    19. Frage geschützt - Eine Frage wurde durch einen Moderator geschützt.
    20. Frage ungeschützt - Eine Frage wurde von einem Moderator nicht geschützt.
    21. Post Disassociated - Ein Admin entfernt die OwnerUserId aus einem Post.
    22. Frage nicht zusammengefügt - Bei einer zuvor zusammengeführten Frage wurden ihre Antworten und Stimmen wiederhergestellt.
    24. Vorgeschlagene Bearbeitung angewendet 25. Post Tweeted
    31. Kommentar Diskussion verschoben, um zu chatten 33. Bekanntmachung hinzugefügt 34. Mitteilung gelöscht 35. Post migriert weg ersetzt ID 17
    36. Post migriert hier ersetzt ID 17
    37. Post-Merge-Quelle
    38. Nach Zusammenführungsziel

  • PostId
  • RevisionGUID : Manchmal kann mehr als eine Art von Protokolldatensätzen mit einer einzigen Aktion aufgezeichnet werden. All diese werden mit demselben RevisionGUID
  • gruppiert
  • CreationDate : "2009-03-05T22: 28: 34.823"
  • UserId
  • UserDisplayName : Wird gefüllt, wenn ein Benutzer entfernt wurde und nicht mehr auf die Benutzer-ID
  • verwiesen wird
  • Comment : Dieses Feld enthält den Kommentar des Benutzers, der einen Beitrag bearbeitet hat. Wenn PostHistoryTypeId = 10, enthält dieses Feld die CloseReasonId des Schlussgrundes (aufgelistet in CloseReasonTypes ):
    Alte Schlussgründe:
    1: Genaue Duplikate 2: Off-topic
    3: Subjektiv und argumentativ 4: Keine wirkliche Frage 7: Zu lokalisierte
    10: Allgemeine Referenz
    20: Rauschen oder sinnlos (nur Meta-Sites)
    Aktuelle enge Gründe:
    101: Duplizieren
    102: Off-Topic
    103: Unklar was du fragst 104: Zu breit 105: In erster Linie meinungsbezogen
  • Text : Eine Rohversion des neuen Werts für eine bestimmte Revision
    • Wenn PostHistoryTypeId = 10, 11, 12, 13, 14 oder 15, enthält diese Spalte eine JSON-codierte Zeichenfolge mit allen Benutzern, die für die PostHistoryTypeId
    • gestimmt haben
    • Wenn es sich um eine doppelte Abstimmung handelt, enthält der JSON-String ein Array von Originalfragen als OriginalQuestionIds
    • Wenn PostHistoryTypeId = 17, enthält diese Spalte Migrationsdetails von from <url> oder to <url>

PostLinks

  • Id Primärschlüssel
  • CreationDate wenn der Link erstellt wurde
  • PostId ID des Quellposts
  • RelatedPostId ID des Ziels / des verwandten Posts
  • LinkTypeId Art des Links
    1. Verbundenes
    3. Duplizieren

PostTags

  • PostId
  • TagId

ReviewRejectionReasons

Behobene Ablehnungsgründe für vorgeschlagene Änderungen. Ссылка

  • Id
  • Name
  • Description
  • PostTypeId (aus Gründen, die nur für bestimmte Post-Typen gelten)

ReviewTaskResults

  • Id
  • ReviewTaskId
  • ReviewTaskResultTypeId (aufgelistet in ReviewTaskResultTypeId )

    1. Nicht sicher 2. Genehmigen (vorgeschlagene Änderungen)
    3. Reject (vorgeschlagene Änderungen)
    4. Löschen (geringe Qualität)
    5. Edit (erste Beiträge, späte Antworten, geringe Qualität)
    6. Schließen (schließen, geringe Qualität)
    7. Sieht gut aus (geringe Qualität)
    8. Schließen Sie nicht (schließen)
    9. Empfehlen Sie Löschen (niedrige Qualität) 10. Empfehlen Schließen (niedrige Qualitätsfrage)
    11. Ich bin fertig (erste Beiträge)
    12. Erneutes Öffnen (erneut öffnen)
    13. Lassen Sie Closed (erneut öffnen)
    14. Bearbeiten und erneut öffnen (erneut öffnen)
    15. Ausgezeichnet (Gemeindebewertung)
    16. Befriedigend (Gemeindebewertung)
    17. Verbesserungsbedarf (Community Evaluation)
    18. Keine Aktion erforderlich (erste Posts, späte Antworten)

  • CreationDate

  • RejectionReasonId (für vorgeschlagene Änderungen; aufgelistet in ReviewRejectionReasons )
  • Comment

ReviewTasks

  • Id
  • ReviewTaskTypeId (aufgelistet in ReviewTaskTypes )

    1. Vorgeschlagene bearbeiten
    2. Stimmen schließen 3. Niedrige Qualität Posts
    4. Erster Beitrag 5. Späte Antwort 6. Abstimmung erneut öffnen 7. Gemeinschaftliche Bewertung 8. Link-Validierung 9. Gekennzeichnete Posts
    10. Triage
    11. Helfer

  • CreationDate

  • DeletionDate
  • ReviewTaskStateId (aufgeführt in ReviewTaskStates , siehe Ссылка )

    1. Aktiv
    2. Abgeschlossen
    3. Ungültig erklärt
  • PostId

  • SuggestedEditId (für vorgeschlagene Bearbeitungen, die aus historischen Gründen eine eigene Nummerierung haben)
  • CompletedByReviewTaskId

SuggestedEdits

  • Id
  • PostId
  • CreationDate
  • ApprovalDate
  • RejectionDate
  • OwnerUserId
  • Comment
  • Text
  • Title
  • Tags
  • RevisionGUID

SuggestedEditVotes

  • Id
  • SuggestedEditId
  • UserId
  • VoteTypeId (2 = Genehmigung, 3 = Ablehnung)
  • CreationDate
  • TargetUserId
  • TargetRepChange

Tags

  • Id
  • TagName
  • Count
  • ExcerptPostId
  • WikiPostId

TagSynonyme

  • Id
  • SourceTagName
  • TargetTagName
  • CreationDate
  • OwnerUserId
  • AutoRenameCount
  • LastAutoRename
  • Score
  • ApprovedByUserId
  • ApprovalDate

Stimmen

  • Id
  • PostId
  • VoteTypeId (aufgeführt in der Tabelle VoteTypes )

    %Vor%
  • UserId (nur vorhanden, wenn VoteTypeId 5 oder 8 ist)
  • CreationDate
  • BountyAmount (nur vorhanden, wenn VoteTypeId 8 oder 9 ist)

Nicht aufgeführt hier: xxxTypes Tabellen, die Paare (list, Name) für Posts.PostTypeId , Votes.VoteTypeId usw. auflisten. Siehe Ссылка für eine aktuelle Liste aller Typen.

    
Matt 30.04.2015, 08:55
quelle