小编典典

可以改进这个MySQL数据库吗?还是它是好的?

sql

在分类广告网站中,您有几个类别(汽车,mc,房屋等)。对于选择的每个类别,隐藏的div变为可见,并显示用户可以根据需要指定的其他选项。

我现在正在创建一个数据库,并且我已经阅读了一些有关规范化和使其优化的文章。

这是我今天的上篮时间

类别表:
-汽车
-mc-
房屋

分类表:
-标题
-说明
-hide_telephone_nr-
可更改
-操作
-价格
-Modify_date

海报表:
-名称
-密码
-电话
-电子邮件

面积表:
-面积
-社区

汽车表:
-年
-燃料
-变速箱
-颜色

MC表格:
-年
-类型

房屋餐桌:
-别墅
-公寓
-大小
-房间

到目前为止,每个类别都有一张桌子,因此大约有30张桌子。 是不是太多了?

到目前为止,我还没有为其中任何一个创建PK或FK,还没有那么远…

您能告诉我这个设置是否不错,还是应该改用其他设置?

另外,您将如何在此处设置FK和PK?

谢谢


阅读 205

收藏
2021-03-17

共1个答案

小编典典

根据我的理解,我将为所有类别创建一个表格,并在其中存储类别的名称和ID。接下来,我将创建一个单独的表来存储每个类别的其他选项。

MySQL Table 1  
----------------   
Category_ID int PRIMARY KEY  
Category_name varchar

MySQL Table 2  
---------------- 
Category_ID int   
Entry_Number int PRIMARY KEY (this will keep track of which entry everything belongs to)
Additional_Option varchar  
Additional_Option_Answer varchar (this is the one that stores what your user clicks/inputs)

例如,使用:

POSTER TABLE:
- name
- passw
- tel
- email

你会在这CATEGORY_ID数据是在存储Category_ID和存储name passw tel
emailAdditional_Option在它自己的行以及用户对这些标准输入将被存储在Additional_Option_Answer

的类别IDPosters将为1,Area将为2。

如果第一个用户添加了一些内容,它将看起来像这样:

---------------------------------------------------------------------------------------------
Category_ID   |    Entry_Number    |    Additional_Options   |   Additional_Options_Answers
---------------------------------------------------------------------------------------------
       1      |   1                |    name                 |   doug
       1      |   1                |    passw                |   1234

如果第二个用户添加了一些内容,它将看起来像这样:

---------------------------------------------------------------------------------------------
Category_ID   |    Entry_Number    |    Additional_Options   |   Additional_Options_Answers
---------------------------------------------------------------------------------------------
       1      |   2                |    name                 |   Hamlet
       1      |   2                |    passw                |   iliketurtles

此外,让我们应用另一个类别:

AREA TABLE:
- area
- community

---------------------------------------------------------------------------------------------
    Category_ID   |    Entry_Number    |    Additional_Options   |   Additional_Options_Answers
    ---------------------------------------------------------------------------------------------
           2      |   3                |    area                 |   San Francisco
           2      |   3                |    community            |   community_name
2021-03-17