mysql - 具有相似属性的多个对象的数据库设计

标签 mysql sql database

我的 unity3d 游戏中有以下对象和各自的属性:

  1. 伐木厂

    • 级别
    • 生产
    • 最大资本
    • StoneUpPrice
    • 粘土价格
  2. 采石场

    • 级别
    • 生产
    • 最大资本
    • 粘土价格
    • WoodUpPrice
  3. 粘土坑

    • 级别
    • 生产
    • 最大资本
    • WoodUpPrice
    • StoneUpPrice

我的问题是,我应该如何在 Mysql 数据库上组织它?

我已经想到了:

  • 创建一个名为 Buildings 的唯一表,并将所有属性放置为一列,并使用引用相应用户的 user_id

  • 为每个建筑物制作一个表格,其中包含各自的属性,所有建筑物也都带有 user_id。

我在大学时还没有学过数据库,所以我非常感谢任何帮助。我的英语不是最好的之一,但我尽力让自己尽可能清楚。

谢谢你:)

最佳答案

你可以制作2张 table

  1. 类别:保存木材厂、采石场等类别
  2. 对象:以category_id作为外键

类别

id
name

对象

category_id
Level
Production
MaxCap
StoneUpPrice(can be null for non relevant category)
ClayUpPrice(can be null for non relevant category)
WoodUpprice(can be null for non relevant category)

在发表评论之前进行编辑

您可以像下面这样制作单独的桥接表,例如player_object

玩家对象

player_id
object_id

假设您有如下所示的玩家表

玩家

id
name

关于mysql - 具有相似属性的多个对象的数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41133845/

相关文章:

mysql - "Your startup disk is almost full"具有大量可用空间和 mysql 计数不同

php - 为什么 JSON 只为我的查询返回 1 个图像输出?

sql - 将特定列上的 INSERT 和 UPDATE 限制为用户角色

database - Magento 下拉属性标签

MySQL:为什么这些查询返回不同的结果?

java - 使用 Java Hibernate 将复合主键映射到外键实体

php - 如何按列/字段值选择 MySQL 表中的行?

java - Hibernate级联子对象不在查找表中存储父表的ID

mysql - WHERE语句查找一个月内的所有记录?

android - _id 列不存在