0

这是我在这里的第一个问题。

设想:

我有一份报纸清单,说:

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 很陌生。任何帮助将不胜感激?

谢谢,

4

3 回答 3

1

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

create table Editions (
    EditionsId int not null identity(1, 1) primary key,
    JournalId varchar(10) references Publications(JournalId),
    EditionName varchar(255),
    . . .
)
于 2013-08-25T17:48:04.907 回答
1

您可以创建一个引用 Journal 表的 edition 表,这样您就可以为一个期刊创建多个 editions。接近的东西;

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

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

这也称为一对多关系

于 2013-08-25T17:48:36.853 回答
0

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

接下来想你知道,你将阅读 NoSQL 解决方案 :grin:

于 2013-08-25T18:15:15.090 回答