mysql - 具有多列的表

标签 mysql

我正在设计一个表来存储餐厅数据
问题是要存储的数据太多。
我正在寻找的是构建这个的最佳方式 我想避免使用带有一堆列的表格,因为它看起来设计很糟糕(是吗?)

一些数据片段:

-餐厅名称
-地址
-城市
-状态
- zip
-国家
-邻里/标签
-美食
..
..
-政策

这是我解决问题的方法:

选项 1:

将所有数据放入 1 个表中。

+---------+----------+----------+-------------------------+  
| res_id  | option1  | option2 | option3 | .. | option20  |  
+---------+----------+---------+---------+----+----------+  
|         |         |          |         |    |          |  
+--------------------------------------------------------+  

选项 2

将数据拆分到多个表

+---------+----------+----------+----------------------+  
| res_id  | option1  | option2 | option3 |  option4    |  
+---------+----------+---------+---------+------------+  
|         |         |          |         |            |  
+---------+---------+----------+---------+------------+  

+---------+----------+----------+----------------------+  
| res_id  | option5  | option5 | option6 |  option7    |  
+---------+----------+---------+---------+------------+  
|         |         |          |         |            |  
+---------+---------+----------+---------+------------+  

选项3

使用多对多关系

餐厅

+---------+----------+----------+  
| res_id  |   name   | location |  
+---------+----------+---------+  
|    1    |   blah   |  blah    |  
+---------+---------+----------+ 
|    2    |  blah   |  blah    |  
+---------+---------+----------+ 

信息

+---------+----------+  
| info_id |   key    |  
+---------+----------+  
|    1    |  info1   |  
+---------+---------+- 
|    2    |  infor2 |  
+---------+---------+ 

restaurant_info

+---------+----------+----------+  
| res_id  | info_id  | value    |  
+---------+----------+---------+  
|    1    |   1     |   val    |  
+---------+---------+----------+ 
|    1    |   2     |   val    |  
+---------+---------+----------+ 

如有任何建议,我们将不胜感激

最佳答案

如果您有多个实体属性,并且每个实体都有自己的一组属性,您可以使用 Entity Attribute Values model存储数据。

关于mysql - 具有多列的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20022898/

相关文章:

mysql - 设置数据库中的日期格式

java - 如何在java中获取下一个数据库字符串?

MySQL - 插入带有 AUTO_INCREMENT 列的 xxx SELECT

php - MySQL 在 WHERE 子句中使用 LEFT 或 SUBSTRING 来增加重复值

php - 如果一个值为 true,如何将一个字段添加到另一字段的末尾?

mysql - 常规 mysql 表中的内连接

mysql - Talend - 在插入 mysql 数据库之前检查列的长度

mysql - 为什么这个简单的 MySQL 更新查询会花费这么长时间?

php - PDO 全文搜索

mysql - 在mysql中将字符串更改为日期格式