如何在SQL中以单值存储/管理多个值

时间:2013-08-25 17:42:12

标签: sql sql-server

这是我的第一个问题。

情景:

我有一份报纸清单,说:

NYT
NJYT
CIT
DIT
ABC
DEF
GHI

每份报纸都有多个版本,具体取决于出版地区。例如,

1. NYT has michigan, atlanta, chicago, newyork, arizona..c
2. NJYT has florida, california, washington, michigan, atlanta, chicago, newyork
3. and so on........

要求:

我想在每份报纸下分组多个版本并将其存储在数据库中。我怎样才能做到这一点? 目前,我有一个名为Publications的表,其中包含以下列:

JournalID   varchar(10) 
JournalFullName varchar(50) 
JournalShortName    varchar(20) 
Language    varchar(20) 
[No of Editions]    int 
Since_Year  date    
City_of_Origin  varchar(50) 

我对SQL很新。任何帮助将不胜感激?

谢谢,

3 个答案:

答案 0 :(得分:1)

您想要一个单独的版本表,例如:

create table Editions (
    EditionsId int not null identity(1, 1) primary key,
    JournalId varchar(10) references Publications(JournalId),
    EditionName varchar(255),
    . . .
)

答案 1 :(得分:1)

您可以创建引用日记帐表的编辑表,以便您可以为日记创建多个版本。接近的东西;

CREATE TABLE Edition (
    EditionId INT IDENTITY(1,1) PRIMARY KEY,
    JournalId VARCHAR(10) FOREIGN KEY REFERENCES Publication(JournalId), 
    EditionName VARCHAR(50)
);

这允许版本引用出版物,这意味着您可以有多个版本引用相同的出版物。

这也称为one-to-many relationship

答案 2 :(得分:0)

根据应用程序的范围,还可以将版本数组存储为json编码的文本字段,这是将数组编码为字符串的最简单方法。您需要记住在需要显示数据时对其进行json_decode。

接下来想想你知道,你将会阅读NoSQL解决方案:咧嘴笑: