我正在为房地产应用程序设计一个数据库。该应用程序的基本结构如下。MySQL中的一对多关系表格
a)申请包括存储与 房地产相关的记录。
B)的特性被划分成类别和交易类型 (出售,出租,租赁)等
c)中的类别被分成子类别。
以存在以下记录为例。
Transaction = Rent , Sale, Lease.
Categories = Residential , Commercial , Industrial , Agricultural
SubCategories = Residential_Apartment (belongs to residential category)
Villa/House (belongs to residential category)
Commercial_OfficeSpace (belongs to commercial category)
Commercial_Plot (belongs to commercial category)
Industrial_Plot (belongs to industrial category)
我要创建的PROPERT和上述所有的三个确定哪些属性之间的关系被存储在例如
Property with id:1 is Transaction:Rent, Category:Residential, Subcategory:Villa/House
Property with id:2 is Transaction:Sale, Category:Residential, Subcategory:Residential_Apartment
Property with id:3 is Transaction:Lease, Category:Commercial, Subcategory:Commercial_Officespace
我的当前表结构如下
CREATE TABLE IF NOT EXISTS `transaction` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`transactionName` varchar(30) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`categoryName` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `subcategory` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`subCategoryName` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `property` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`transaction_id` int(11) NOT NULL,
`category_id` int(11) NOT NULL,
`subcategory_id` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
编辑:
我的问题是。
看到它们之间的关系,它是存储记录的正确方法吗?我主要关心的是类别和子类别表,因为现在我无法考虑将来可能发生的设计缺陷。我只想知道如果你被告知要设计类似的东西,你会如何在表中存储记录。主要是类别和子类别部分。
耶,继承结构可能很好,但不是我要求的。因为属性只能联系一个transactionType一个类别和一个子类别。全部从根交易继承到分类到子类别。你给了我一个关于我应该怎么去的更好主意的链接。谢谢:) – 2012-03-10 18:50:30
总是乐于提供帮助,即使它是间接的:)同样,如果你喜欢那个,请记得点赞另一个帖子,因为它总是很好地帮助他们,即使比他们原来的帖子晚得多。 – 2012-03-10 18:57:14