我目前正在研究mySQL中的一个项目,我想知道mySQL是否可以为实体的属性创建一组复合属性。该属性不是主键,它是一个地址,因此复合属性应该是,街道,城镇,州ECT ...... A)这可能吗?如果是的话我将使用哪种类型/我将如何去做呢。 B)这是实用的我有大约10个实体,我觉得他们中的一些将需要复合属性,这只是最好的例子。
答案 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并不支持复合属性。但是我可以使用命名约定来解决这个问题。组件在一起。