gpt4 book ai didi

php - 我如何着手使用我现在拥有的创建关系数据库?

转载 作者:搜寻专家 更新时间:2023-10-30 22:06:58 25 4
gpt4 key购买 nike

我想用我目前在 PHPMYAdmin 中的表创建一个关系数据库。但我不知道该怎么做?我目前有 4 个表,一个用户、 friend 、消息、订单和商店。我相信我应该使用多对多关系,因为用户需要登录才能订购,等等。关于我应该如何布置 table 有什么想法吗?这只是我在修修补补和学习。另外,如果它们都链接在一起,您将如何获取和更新表格?

Main

Friends

Messages

ORDERS

Stores

Users

最佳答案

我的回答有点笼统,但应该可以帮助您找到适合您的解决方案。话虽如此,请随时寻求建议。

1) 设计关系数据库(即模式设计)

您目前有 5 个表:

  • friend
  • 消息传递
  • 订单
  • 店铺
  • 用户

然而,您需要首先了解您的应用程序/数据/问题,并找出它们之间的关系。将它们画成 ERD(实体关系图)。例如, friend 和消息是如何相互关联的?一个 friend 可以创建多条消息(一对多),但一条消息只能由一个 friend 创建。所以 FRIEND 和 MESSAGE 是一对多的关系。 “消息”表需要一个与 friend 匹配的用户标识,看起来确实如此。所以基本上您需要将其映射出来以查看您的表格是否设计正确。

如果您发现多对多关系,您需要划分表,以便您拥有一对多关系(假设您想要规范化您的模式)。

设计完成后,您可以查看它是否与当前设计相匹配,或者您是否需要更改表格或只是创建新表格。

如果您创建新表,则可以(小心地)使用 SQL 或脚本迁移数据。

2) MySQL - MyISAM 与 InnoDB

https://dev.mysql.com/doc/refman/5.7/en/myisam-storage-engine.html

MyISAM versus InnoDB

如果你想定义表之间的“关系”并使用外键,带有外键约束,那么你可以创建新的 InnoDB 表(如果你选择创建新表或新数据库),或者你可以转换您现有的 MyISAM 表到 InnoDB。一旦它们成为 InnoDB,您就可以根据您的数据库设计使每个表彼此“关联”。

例如,如果 friendmessage 是一对多的,那么 message 表将包含一个 friend-userid 这将是 REFERENCES frienduserid 列的外键。 InnoDB 表会有更多的开销(更慢),但会为您提供您可能需要的真正的关系数据库属性(取决于您的应用程序)。

如果我设计 MySQL 数据库,我个人更喜欢 InnoDB 表,除非我正在考虑大数据和性能,这是另一个(好的)问题,需要深入研究。

希望这对您有所帮助。

关于php - 我如何着手使用我现在拥有的创建关系数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49020584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com