猿问

请教分类信息字段设计

请教一个分类信息的数据库怎么设计比较好?

自己想把信息主要内容(title,content)都写在一张info表里,不知道怎么对特殊属性怎么设计表?

category 表 - 房产 工作分类

info 表 房产工作汽车等信息

  • id categoryId title content

分类信息包含房产,工作等等,但是每个不同类型的特殊属性又不一样,房产有面积,小区,工作有职位,福利等等
但是 meta 表不知道怎么设计?求解或者怎么好

A 方案

id metaname metavalue infoId
面积。 120
小区小区。 小区名称
职位。 销售

或者 B 方案 这个感觉字段会很多,因为不止房产工作,还有汽车等等

id 面积 小区 职位 infoId
120 名称 销售

=================

更新自己设计的表,后面有人有更好的请指教

+-------------------+
| Tables            |
+-------------------+
| houses            |
| informations      |
| jobs              |
| category          |
+-------------------+

informations table
+------------+------------------+------+-----+---------+----------------+
| Field      | Type             | Null | Key | Default | Extra          |
+------------+------------------+------+-----+---------+----------------+
| id         | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| title      | varchar(255)     | NO   |     | NULL    |                |
| content    | text             | YES  |     | NULL    |                |
| category_id| int(10) unsigned | NO   | MUL | NULL    |                |
| field_id   | int(10) unsigned | NO   |     | NULL    |                |
| field_type | varchar(10)      | NO   |     |         |                |
+------------+------------------+------+-----+---------+----------------+

houses table
+--------------+------------------+------+-----+---------+----------------+
| Field        | Type             | Null | Key | Default | Extra          |
+--------------+------------------+------+-----+---------+----------------+
| id           | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| layout_shi   | tinyint(4)       | NO   |     | NULL    |                |
| layout_ting  | tinyint(4)       | NO   |     | NULL    |                |
| layout_wei   | tinyint(4)       | NO   |     | NULL    |                |
| area         | smallint(6)      | NO   |     | NULL    |                |
+--------------+------------------+------+-----+---------+----------------+

jobs table
+-------------+------------------+------+-----+---------+----------------+
| Field       | Type             | Null | Key | Default | Extra          |
+-------------+------------------+------+-----+---------+----------------+
| id          | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| gangwei     | varchar(255)     | NO   |     | NULL    |                |
| company     | varchar(255)     | NO   |     | NULL    |                |
| address     | varchar(255)     | NO   |     | NULL    |                |
| fuli        | varchar(255)     | YES  |     | NULL    |                |
+-------------+------------------+------+-----+---------+----------------+

informations 表中的 field_id 为 houses 或者 jobs 的 id,field_type 为 houses 或者 jobs。
informations 与 houses、jobs 多态关联

我正在学习 laravel,所以大致就是这样,

慕尼黑5688855
浏览 408回答 3
3回答

斯蒂芬大帝

1.房产-工作表分类ID 房产信息ID 工作信息ID 2.房产表 房产信息ID 属性1 属性2 …… 3.工作表 工作信息ID 属性1 属性2 ……

撒科打诨

不是很明白你的需求。

HUH函数

大概知道你的意思了,你自己的设计其实就是想把公用的交给抽象模型,我是不建议在存储层这样去设计的,各个类别的模型属性本身就有很多不一样,冗余的话也不是不可以,但是不利于以后扩展,每个分类单独建表吧,你所想的抽象留在应用层去抽象模型挺好的。都堆在一个表里对扩展和修改太不友好,望对你有帮助。
随时随地看视频慕课网APP
我要回答