【发布时间】:2014-12-10 02:27:00
【问题描述】:
假设我想将一些图像 ID 及其标签存储在 Postgres 9.3 数据库中,这样我就可以:
1) 给定一个图像 id,我可以得到它的标签;
2) 给定一个标签,我可以找到那些有这个标签的图片。
哪种表结构更适合这个问题?
a) image_id 作为 PKEY,tag 列将与此图像关联的标签存储为数组;
b) tag 为 PKEY,image_id 列将具有此标签的 image_ids 存储为数组;
c) (image_id, tag) 作为 PKEY。
d) 其他表结构。
我认为 c) 更好,但我没有任何实际经验,有什么建议吗?
谢谢。
【问题讨论】:
-
c 是默认解决方案,几乎适用于任何使用关系数据库的情况。
-
您还想对数据库做什么?如果只是图像 id 和标签,这听起来有点矫枉过正,没有数据库会有更好的解决方案。这些是多人的图像 ID 和标签吗?它们是共享的吗?图像会存储在数据库中吗?
标签: postgresql database-design