gpt4 book ai didi

mysql - 如何处理多个用户可能相同的用户输入数据

转载 作者:行者123 更新时间:2023-11-29 10:56:56 24 4
gpt4 key购买 nike

如果我要为特定的东西创建一个市场数据库,比如说书籍。我将有一个 store 表和一个 store_books 表,其中包含每个商店的图书。

现在,如果多个商店销售完全相同的书的可能性很高,那么最好在 store_book 中保留另一个包含书籍相关信息的表 books 并将价格等 表?我还想使用另外两个表 book_langslangs 添加语言。

book_langs 中,我有本地化信息,langs 包含所有支持的语言。

在这种情况下,我主要担心的是,如果商店需要添加一本新书,它将在 books 表中创建第一个条目以及所有翻译,这些翻译将由每个人。如果有人翻译错误、拼写错误或者只是有多种翻译方式(比如说一个标题),这会导致数据库困惑,因为每个人都会开始为每本书创建新条目。解决此类问题的好方法是什么?对 store_books 进行反规范化以包含标题是一种方法,但这是首选方法吗?

请以书籍为例。有人可能会说,一本书自从被翻译后就需要有一个特定的标题。将这本书视为占位符,因为我目前想不出更好的例子。

最佳答案

您需要区分同一本书的“版本”。我认为翻译是不同的版本并且存储销售版本。就您而言,“版本”可能只是一本书/语言的组合。因此,将其命名为 BookLanguageId

类似于以下实体:

create table Books (
BookId b int auto_increment primary key,
Title varchar(255),
. . .
);

create table BookLanguages (
BookLanguageId int auto_increment primary key,
BookId int not null,
LanguageId int not null,
IsPrimaryLanguage tinyint,
. . .
foreign key (BookId) references Books(BookId),
foreign key (LanguageId) references Languages(LanguageId)
);


create table StoreBookLanguages (
StoreBookLanguageId int auto_increment primary key,
StoreId not null,
BookLanguageId int not null,
DateArrived int,
foreign key (StoreId) references Stores(StoreId),
foreign key (BookLanguageId) references BookLanguages(BookLanguageId)
);

关于mysql - 如何处理多个用户可能相同的用户输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42886800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com