我想用phpmyadmin中当前的表创建一个关系数据库。但我不知道该怎么办?我目前有4个表,一个用户,朋友,消息,订单和商店。我认为我应该使用多对多关系,因为用户需要登录才能订购,等等。关于我该怎么摆桌子有什么想法吗?这只是我在胡闹和学习。如果所有表都链接在一起,您将如何获取和更新它们?
php - 如何使用现有资源创建关系数据库?-LMLPHP
php - 如何使用现有资源创建关系数据库?-LMLPHP
php - 如何使用现有资源创建关系数据库?-LMLPHP
php - 如何使用现有资源创建关系数据库?-LMLPHP
php - 如何使用现有资源创建关系数据库?-LMLPHP
php - 如何使用现有资源创建关系数据库?-LMLPHP

最佳答案

我的回答有点笼统,但应该能帮助你想出适合你的解决方案。话虽如此,请随时寻求建议。
1)设计关系数据库(即模式设计)
您目前有5张桌子:
朋友
消息传递
命令
商店
用户
但是,您需要首先了解您的应用程序/数据/问题,并了解它们之间的关系。把它们画成一个erd(实体关系图)。例如,朋友和信息是如何相互联系的?一个朋友可以创建多条消息(一对多),但一条消息只能由一个朋友创建。所以朋友和信息是一对多的关系。“messaging”表需要一个与朋友匹配的用户id,这看起来是这样的。所以基本上你需要把这个映射出来看看你的表是否设计正确。
如果发现多对多关系,则需要划分表,以便有一对多关系(假设要规范化架构)。
一旦您有了一个设计,您就可以看到它是否与当前设计匹配,或者您是否需要更改表或只是创建新表。
如果您创建了新表,那么您可以(小心地)使用sql或脚本迁移数据。
2)mysql-myisam对innodb
https://dev.mysql.com/doc/refman/5.7/en/myisam-storage-engine.html
MyISAM versus InnoDB
如果要定义表之间的“关系”并使用外键,使用外键约束,则可以创建新的InDB表(如果选择创建新表或新数据库),或者可以将现有的MyISAM表转换为NYNDB。一旦它们是innodb,您就可以根据您的数据库设计使每个表相互“关联”。
例如,如果afriend是具有message的一对多,则message表将包含一个friend-userid外键,它将是REFERENCESfriend列的外键。innodb表将有更多的开销(较慢),但会提供您可能需要的真正的关系数据库属性(取决于您的应用程序)。
就我个人而言,如果我设计一个mysql数据库,我更喜欢innodb表,除非我考虑的是巨大的数据和性能,这是另一个(好的)问题。
希望这有帮助。

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

10-12 07:38
查看更多