我目前正在 mySQL 中开发一个项目,我想知道 mySQL 是否可以为实体的属性创建一组复合属性。该属性不是主键,它是一个地址,因此复合属性应该是街道、城镇、州等... A)这可能吗?如果是这样,我会使用哪种类型/我将如何去做。 B) 是否实用,我有大约 10 个实体,我觉得其中几个实体需要复合属性,这只是最好的例子。
最佳答案
不,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 不支持复合属性。但我可以使用命名约定将组件“关联”在一起。
关于mysql - 在 My sql ER 图中创建复合属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396988/