我即将开发一个用于学习目的的个人项目。一个房地产网站,广告商(注册用户)可以在该网站上发布其房产(公寓、土地、房屋……)的广告,供出租(在规定期限或未规定期限内)或出售。客户(访客)也可以在特定位置搜索特定类型的物业出租或购买。
商业规则:
- 用户是注册用户。
- 用户有一个角色,并且只有一个角色(用户、管理员……)。
- 角色属于许多用户(每个用户的默认角色是用户)。
- 用户有一个位置,只有一个位置(位置指地址)。
- 位置属于许多用户。
- 用户拥有许多房产(出租或出售)。
- 财产属于一个用户。
- 财产属于一个位置(位置是指地址)。
- 文件属于财产。
- 属性有很多文件(基本上是图像)。
我做了很多谷歌搜索,在 databaseanswers.org 中看到了一些数据库建模,但我被困在属性的类型/功能上,我无法弄清楚,我不知道最好的解决方案!因为每种类型的房产都有不同的特点,例如公寓有房间、浴室......但土地没有,因为土地我们可以说它们在城内或城外......</p>
我想设计这个数据库,使其更易于维护和扩展。我不希望数据库设计结构在开发时导致更复杂的查询/代码。
如果你能给我一些关于我的“小”问题的建议,我将不胜感激。
我是否必须将每个属性的类型与它们自己的实体(表)分开,例如公寓表、土地表、房屋表……这样我就可以将它们附加到它们自己的特征上。
或者我是否必须将它们与所有Features合并到一个表“Properties”中,并让另一个表“Type”将每个属性链接到它的类型(如在帖子和类别中)。
还是我必须创建四个表"Properties" "Type" "Features"和一个数据透视表"feature_property"。
- 财产属于一种类型(公寓、土地、房屋……)。
- 类型有很多属性。
- 特征有很多属性。
- 一个属性有许多特征。