Was ist der beste Datentyp zum speichern Liste der E-Mail-Ids in der Datenbank?
Meine Forderung ist, zum speichern einer Liste von emailIds in einer einzelnen Spalte, Was wäre die beste Daten Typ zu tun? Meine Spalten sind wie EmailTo , EmailCC, EmailBCC, in dem ich würde verlangen, dass die Speicherung der Liste der Ids. Auch helfen Sie mir mit der Größe des Datentyps.
Ich bin mit SQL-server.
- Schlechte Idee. Wurde die Anforderung zum speichern der Daten wie diese oder in der Lage, um es anzuzeigen wie diese?
- Die Voraussetzung ist, um die Daten zu speichern. Es ist für die Konfiguration Geldbörse beim senden der e-mail. (Mit C#).
- Die requierment geändert werden sollte. Es ist ein Kosten für schlechte Entwürfe.
- Was wäre der beste Vorschlag, den dann?
- Datensatz für jede E-Mail, einschließlich E-Mail-Typ. Wenn Sie die Daten abrufen, die Sie verketten es mit
XML path ('')
oder andere Technik
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist gut zu gehen mit
NVARCHAR(320)
- 64 Zeichen für den lokalen Teil + @ + 255 für domain-Namen.Finden Sie diese für weitere Informationen.
Für E-Mail bitte verwenden Sie als Datentyp VARCHAR[(n)]
Gemäß Festlegung in MSSQL Server 2008
VARCHAR[(n)] : Beschreibt eine Zeichenfolge variabler Länge von single - byte-Zeichen.Im Gegensatz zu den CHAR-Datentyp, der Werte für den Datentyp VARCHAR gespeichert sind in Ihrer tatsächlichen Länge. Dieser Datentyp hat zwei Synonyme: CHAR UNTERSCHIEDLICHE und CHARAKTER UNTERSCHIEDLICHER
In der Gebäude-Datenbank , die ich verwendet, VARCHAR(45) ,das war in Ordnung arbeiten für E-Mail Zwecke.
VARCHAR
(überNVARCHAR
) wenn Sie haben nie fertig zu werden mit internationalisierten domain-NamenDie besten Datentyp zum speichern einer Liste (jede Art von einer Liste, nicht nur e-mail-IDs) ist eine Tabelle. Einfache Tabelle.
Zum Beispiel, wenn es ist eine Liste von Ganzzahlen, die Tabelle hätte ein
int
Spalte.Dies ist, was RDBMS ist für - Sie sind entworfen, um Daten zu speichern in einer Reihe von Tabellen.
In deinem Fall müsstest du mehrere Tabellen:
EmailsTo
,EmailsCC
,EmailsBCC
. Die Struktur der Tabellen würde abhängen, was IhreEmailID
ist, welche Art es ist und was andere damit zusammenhängende Informationen (Spalten), die Sie benötigen.varchar
Spalte.nvarchar(max)
ist auch ausreichend. Wenn Sie brauchen, um eine Menge der Suchanfragen zu den "An" - Empfänger, und nur selten unter den "BCC" - Empfänger, macht es Sinn, Sie zu trennen. Diese Frage hat zu wenig details und nicht beantwortet werden kann. Ich hätte es ignoriert, aber er bekam gefangen durch das Wort "Liste".nvarchar(max)
ist eine gute Idee. Wenn Sie brauchen nur eine dumme Speicherung eines Textes "wie es ist". Wenn Sie nicht aufteilen möchten, diesen text in sub-Komponenten, die innerhalb der SQL-Abfragen. Das ist es, wasnvarchar(max)
undvarbinary(max)
sind für.nvarchar(max)
. Und es gibt Fälle, wenn Sie besser normalisieren Sie weiter und speichern Sie es als eine separate Tabelle mit einem Empfänger pro Zeile. An, diese Frage nicht genügend details liefern, die erlauben würde, zu wählen, entweder die Variante. Idealerweise sollte es nicht werden beantwortet, bis es geklärt ist.Scheint Datatype Problem für mich.Um Ihre Frage zu beantworten ,aus meiner Sicht VARCHAR(MAX) ist die höchste, die Speicherung von bis zu 8k-Zeichen oder vielleicht sogar noch mehr, wenn Sie warf es, aber das wäre nicht der richtige Ansatz zu tun.
Was Sie tun können, ist das erstellen einer GEMEINSAME GRUPPE und gewinnen Sie alle E-Mail-id ' s, denen Sie E-Mails senden. Diese nicht selbst besetzen viel von Ihrem Datentyp Raum und alle Völker einbezogen werden können, dass innerhalb dieser Gruppe wie pro Ihre Kommentare, da Sie erzählte, Sie benötigen es für das senden von E-Mails an Menschen.
VARCHAR(MAX)
gehen kann, die größer als 8Kb