Database 简单的数据库设计-某些列具有多个值
警告:对于数据库设计/建模来说是非常新的,所以请接受我的建议:) 我正试图设计一个简单的数据库,将有关图像的信息存储在存档中。除了Database 简单的数据库设计-某些列具有多个值,database,sqlite,database-design,Database,Sqlite,Database Design,警告:对于数据库设计/建模来说是非常新的,所以请接受我的建议:) 我正试图设计一个简单的数据库,将有关图像的信息存储在存档中。除了文件名(这是一个不同的字符串),我还有流派和星号等字段,其中每个字段可能包含多个字符串(如果图像与多个流派相关联,和/或如果图像中有多个参与者) 现在数据库只是一个键入文件名的表,像星号和类型这样的字段只存储了多个逗号分隔的值。我可以通过使用通配符和来查询它,比如和中的,但我想知道是否有更优雅的方法来分解数据,以便更容易使用/查询。例如,我希望能够找到归档中有多少独特
文件名
(这是一个不同的字符串),我还有流派
和星号
等字段,其中每个字段可能包含多个字符串(如果图像与多个流派相关联,和/或如果图像中有多个参与者)
现在数据库只是一个键入文件名
的表,像星号
和类型
这样的字段只存储了多个逗号分隔的值。我可以通过使用通配符和来查询它,比如
和中的,但我想知道是否有更优雅的方法来分解数据,以便更容易使用/查询。例如,我希望能够找到归档中有多少独特的参与者,但我认为这在当前模型中是不可能的
我意识到这是一个关于数据建模的非常基本的问题,但是任何人都可以提供指导,或者你可以指导我去阅读,我将不胜感激
谢谢 您需要创建额外的表以坚持规范化。在您的情况下,您需要4个额外的表来表示这些n->m关系(如果关系为1->n,则2个额外的表就足够了)
表:
图像(id、文件名)
类型(id、名称)
图像类型(图像id,类型id)
明星(id、姓名等)
图像明星(图像明星id,明星id)
以及表中的一些数据:
图像表
身份证件
文件名
1.
/用户/home/song/empire.png
2.
/用户/home/song/promiscuous.png
非常感谢。这太完美了。