我得到一个JSON格式的输入,该值应该存储在MySQL数据库中。我想在一行中存储多个图像URL。有可能,怎么样?
以下是JSON格式的输入。我想将多个图像数据存储在一行中?
{
"session_id": "192urjh91f",
"description": "description of the post",
"location": "12.00847,-71.297489",
"place_id": "917439",
"images": [
"url1",
"url2",
"url3"
],
"audio": "audio url",
"tags": [
"1234",
"31332",
"12412"
],
"people": [
"user_id",
"user_id1",
"user_id2"
]
}
答案 0 :(得分:0)
如果您知道总会有三个图像,则可以创建三列image1..3。如果图像#是在运行时,那么为图像设置单独的表总是更好。如果您对表设计有限制,那么您可以使用一些分隔符存储到单个列中。
答案 1 :(得分:-1)
在关系数据库中存储此类数据的简洁方法包括为对象的所有标量(字符串或数字)成员创建一个表,为每个数组值成员创建一个附加表。您有三个数组(images
,tags
和people
),这意味着您需要创建包含以下列的四个表:
posts (post_id PRIMARY KEY, session_id, description, latitude, longitude, place_id, audio_uri)
post_images (post_id, uri, PRIMARY KEY (post_id, uri))
post_tags (post_id, tag_id, PRIMARY KEY (post_id, tag_id))
post_people (post_id, user_id, PRIMARY KEY (post_id, user_id))
(将这些语句翻译成实际的CREATE TABLE
语句留给了知道每个成员可接受的值的人。
当您添加帖子时,您为帖子本身添加一行,该帖子应通过post_id
机制获得AUTO_INCREMENT
。然后使用此post_id
并使用它为每个图像插入一行,为每个标记插入一行,为每个用户插入一行。