在My sql ER图中创建复合属性?

时间:2014-04-30 19:58:44

标签: mysql database-design

我目前正在研究mySQL中的一个项目,我想知道mySQL是否可以为实体的属性创建一组复合属性。该属性不是主键,它是一个地址,因此复合属性应该是,街道,城镇,州ECT ...... A)这可能吗?如果是的话我将使用哪种类型/我将如何去做呢。 B)这是实用的我有大约10个实体,我觉得他们中的一些将需要复合属性,这只是最好的例子。

1 个答案:

答案 0 :(得分:2)

不,MySQL不支持"复合"属性。

你可以"爆发" "复合材料"的组成部分属性到一个单独的表中。或者,您可以将它们作为单独的列保留在同一个表中。

我使用列名来"识别"构成复合属性的属性。你用"地址"给出了一个很好的例子。它确实是一个属性,有几个组件。

这是我的一个表定义的一个(绝育的)示例:

CREATE TABLE `foo` (
`id`              COMMENT 'PK'
`category_id`     COMMENT 'FK to ...'
`display_name`
...
`address_street`  
`address_street2` 
`address_city`    
`address_state`   
`address_country` 
`address_postal_code`
...
`country_code`    COMMENT 'ISO 3166-1-alpha-2 code'
`latitude`     
`longitude`    
...

总的来说,MySQL并不支持复合属性。但是我可以使用命名约定来解决这个问题。组件在一起。