1

我想为用户设计发布图像、视频、网址、音频、文本等的结构。

我已经创建

CREATE TABLE users (
    userID INT NOT NULL AUTO_INCREMENT,
    firstName VARCHAR(50),
    lastName VARCHAR(50),
    password CHAR(32),
    PRIMARY KEY (userID)
);


 CREATE TABLE post(
           postID INT NOT NULL AUTO_INCREMENT,
           message VARCHAR(200)
        PRIMARY KEY (postID));

我的问题是我应该设计不同的表来存储图像、视频、网址等

像图像表

CREATE TABLE post_image(
               imageID INT NOT NULL AUTO_INCREMENT,
               imgPATH VARCHAR(200)
            PRIMARY KEY (imageID));

视频,链接等相同。

或者它只能在单个表中完成。

4

1 回答 1

1

我已经看到这样做有两种方式。

  1. 您创建一个通用的“资产”表,存储所有可能附加到帖子的内容。视频、图像、URL 等

  2. 为每种资产类型创建一个单独的表。post_image 表、post_comment、post_video 等。

我更喜欢(2)只是因为资产类型彼此之间会有很大的不同。考虑存储有关视频的信息。你有视频时长,是否自动播放等。图像永远不会有这些属性。

所以即使你可以把所有这些东西放在一张桌子上,我强烈建议要这样做。

于 2013-05-28T21:06:45.993 回答