我必须在sql中创建一个表,其中一列存储电影奖项。该模式表示,它应该存储像奥斯卡这样的剧本。是否可以在SQL中的同一个字段中存储两个值。如果是这样的话,你会如何查询表格呢?在一个字段中存储两个值sql
0
A
回答
4
这是一个以上的数据块存储在一个可怕的设计模式关系数据库中的单列。您的系统的精确设计取决于多种因素,但这里是一个可能的方式来模拟它:
CREATE TABLE Movie_Awards (
movie_id INT NOT NULL,
award_id INT NOT NULL,
CONSTRAINT PK_Movie_Awards PRIMARY KEY CLUSTERED (movie_id, award_id)
)
CREATE TABLE Movies (
movie_id INT NOT NULL,
title VARCHAR(50) NOT NULL,
year_released SMALLINT NULL,
...
CONSTRAINT PK_Movies PRIMARY KEY CLUSTERED (movie_id)
)
CREATE TABLE Awards (
award_id INT NOT NULL,
ceremony_id INT NOT NULL,
name VARCHAR(50) NOT NULL, -- Ex: Best Picture
CONSTRAINT PK_Awards PRIMARY KEY CLUSTERED (award_id)
)
CREATE TABLE Ceremonies (
ceremony_id INT NOT NULL,
name VARCHAR(50) NOT NULL, -- Ex: "Academy Awards"
nickname VARCHAR(50) NULL, -- Ex: "Oscars"
CONSTRAINT PK_Ceremonies PRIMARY KEY CLUSTERED (ceremony_id)
)
我这里没有包括外键约束,但我希望他们应该是很明显的。
+0
+1时删除它,甚至违反数据库设计的**第一范式**。 –
3
任何可能的;这并不意味着这是一个好主意:)
好得多正常化您的结构和存储类型,像这样:
AwardTypes:
AwardTypeID
AwardTypeName
Movies:
MovieID
MovieName
MovieAwardType:
MovieID
AwardTypeID
0
可以JSON格式,存储JSON字符串序列数据,并deselialize上读。比使用你自己的格式更接近
0
数据呈现不必如此紧密与物理数据组织。将这两个数据存储在两个单独的列中,然后在显示时间进行某种连接,不是无聊吗?
这少得多不好受加入数据比分割它,如果你碰巧需要只是一个电影剧本,有一天...
相关问题
- 1. SQL根据一个字段的值在两个字段之间进行选择
- 2. 在数据库字段中存储一个ID的哈希值?
- 3. 存储一个日期和两个时间字段
- 4. 将值存储在两个MySQL表中
- 5. 如何在一个SQL查询中求和两个字段
- 6. 在一个列中存储多个值
- 7. 在SQL文件中将值从一个字段移到另一个字段
- 8. 在Sql列中存储多个值
- 9. 将两个整数存储在一个字节中
- 10. ArrayList只存储两个值
- 11. 如何在NSMutableArray中存储两个字段?
- 12. mysql在一个字段中存储多个条目
- 13. SQL:与两个字段
- 14. 如何在一个mysql表字段中存储多个HTML表单字段?
- 15. 在一个字段中存储多个值(用户喜欢的图像的ID)
- 16. 在单个Django模型字段中存储两种类型的值
- 17. 在两个字段中的任意一个方向的两个值
- 18. 比较SQL中的单个字段与两个字段
- 19. 在一列中存储多个值与在多个值中存储多列
- 20. 如何在单个字段中存储多选的值Symfony2
- 21. SQL两个查找到相同的字段在一个表上
- 22. SQL从未关联数据表中的两个字段到同一个字段?
- 23. 从第三个字段中的两个字段计算值
- 24. 从SQL Server中检索并存储两个值到c#
- 25. 在SQL查询(DB2)中,如何在另一个字段中查找字段值?
- 26. 从html中输出前两个段落存储为字符串
- 27. 如何在sql表中的同一列添加两个字段?
- 28. Django存储一个字段的原始值
- 29. 在另一个类中存储值
- 30. 在vec3中存储一个浮点值
您可以使用Json格式序列化数据,存储Json字符串,并在读取 –