Articles of database Design

MySQL zu viele Spalten?

Ich erstelle eine Tabelle mit 30-50 Spalten. Es gibt ungefähr 200 K dieser Zeilen. Wird empfohlen, diese data in separaten Tabellen zu speichern? Gibt es performancesprobleme, wenn Sie so viele Spalten haben? Ich werde ein wenig über den Tisch erzählen. Ich muss alle Sportspiele der letzten 10 Jahre (Basketball, Baseball, Fußball, Hockey) speichern. Für jede […]

Drop Spalte mit Fremdschlüssel in MySQL

Ich habe folgende 2 Tabellen: CREATE TABLE `personal_info` ( `p_id` int(11) NOT NULL AUTO_INCREMENT, `name` text NOT NULL, `initials` text NOT NULL, `surname` text NOT NULL, `home_lang` int(11) NOT NULL, PRIMARY KEY (`p_id`), KEY `home_lang` (`home_lang`), CONSTRAINT `personal_info_ibfk_1` FOREIGN KEY (`home_lang`) REFERENCES `language_list` (`ll_id`) ) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=latin1 CREATE TABLE `language_list` ( `ll_id` int(11) […]

Repräsentiert "X von Y" in SQL

In meiner database habe ich viele Kurse, die verpflichtend sind. Einige sind wählbar. Es gibt jedoch Kurse dritter Art: Eine list, aus der Sie X-Kurse auswählen müssen. Die list (und die Nummer X) ist für jedes Studienprogramm unterschiedlich. Wie würdest du das relational darstellen?

Ist es eine gute Idee, eine database mit inheritance zu erstellen?

Zum Beispiel habe ich zwei Tabellen: "Kunde" und "Personal". Sie sind fast gleich, nur zwei Attribute sind unterschiedlich. Also sollte ich eine andere Tabelle mit dem Namen 'Person' erstellen, die alle die gleichen Attribute von 'Kunde' und 'Personal' enthält, dann erstellen fk Schlüssel zeigen auf diese 'Person'? So etwas wie inheritance im classndesign. Gibt es […]

Was ist ein guter path, um eine 100M-Record-Tabelle für schnelle Ad-hoc-Abfragen zu strukturieren?

Das Szenario ist ziemlich einfach, es gibt ungefähr 100 Millionen datasätze in einer Tabelle mit 10 Spalten (Art von Analysedaten), und ich muss in der Lage sein, Abfragen für jede Kombination dieser 10 Spalten durchzuführen. Zum Beispiel so etwas: Wie viele datasätze mit a = 3 && b > 100 gibt es in den letzten […]

Fremdschlüssel mit mehreren Spalten aus verschiedenen Tabellen

Nehmen wir ein dummes Beispiel: Ich habe viele Haustiere, jedes mit einem NAME als ID und einem Typ (CAT oder DOG), lass es uns so schreiben ( Pseudocode ): TABLE ANIMALS ( NAME char, ANIMAL_TYPE char {'DOG', 'CAT'} PRIMARY KEY(NAME) ) (Ich habe zum Beispiel einen CAT namens Felix und einen Hund namens Pluto) In […]

Archiv in database entcasting. Einige Muster vielleicht?

Wir machen gerade eine Webanwendung, die eine der functionen ist, um Ereignisse durch den Benutzer zu erstellen. Diese Ereignisse können später vom Benutzer oder Administrator gelöscht werden. Der Client erfordert jedoch, dass das Ereignis nicht wirklich physisch aus der database gelöscht, sondern nur als gelöscht markiert wird. Der Benutzer sollte nur nicht gelöschte Ereignisse sehen, […]

Vertica: datavalidierung von Duplikat / Primärschlüssel

Ich versuche, eine Überprüfungsprozedur während einer Auslastung zu erstellen, die überprüft, um sicherzustellen, dass data nicht dupliziert werden. Vertica unterstützt das nativ nicht: Vertica prüft beim Ausführen von Abfragen auf Constraint-Verletzungen, nicht beim Laden von data. Verwenden Sie eine COPY-statement (Seite 667) mit der Option NO COMMIT, um Constraint-Verletzungen als Teil des Ladeprozesses zu erkennen. […]

Teildaten in einer database speichern

Ich möchte Teildaten in einer relationalen database (MySQL, PostgreSQL, etc.) speichern. Zum Beispiel kann die Eingabe nur das Jahr (2013) sein; das Jahr und der Monat (2013-08); oder das Jahr, den Monat und den Tag (2013-08-29). Ich kann nicht einfach einen normalen DATE-Typ verwenden, da das Jahr bis 2013-01-01 erweitert wird, und dies ist nicht […]

Need Muster für die dynamische search in mehreren SQL-Tabellen

Ich suche nach einem Muster für die dynamische search in mehreren Tabellen. Ich habe keine Kontrolle über die Legacy (und schlecht gestaltete) databasetabellenstruktur. Stellen Sie sich ein ähnliches Szenario vor wie bei einer Resume-search, bei der ein Benutzer möglicherweise eine search nach den data im Lebenslauf durchführen und eine list mit Lebensläufen abrufen möchte, die […]