MYSQL表规划

时间:2011-07-20 13:53:07

标签: php mysql database-design

像大多数网络编程一样,mysql对我来说是新的。我正在构建一些允许用户登录并执行各种操作的内容。创建更多用于指定任务的表而不是将所有表放在一个表中是一个好主意吗?

例如,如果我有用户和文章,并让用户连接到文章 我需要一张供​​用户使用的表格 和一个在线用户
和一个文章
一篇文章和关联用户?

一位朋友向我推荐了这个,但让我感到困惑的是,大多数桌子都有共同点。为什么在列出连接用户的文章中没有列?

4 个答案:

答案 0 :(得分:1)

尝试并提升你的思路,对你来说会更容易。

  1. 将商业模式简化为实体,即应用内互相交互的对象。
  2. 表格将是数据库系统内的表示。建立他们。
  3. 接下来考虑关系。问问自己:他们如何一起工作?一个属于另一个吗?一个人有很多其他人吗?
  4. 关系应该是每个表中的新字段。例如:
      

    如果某篇文章属于某个用户,则articles表格中的字段为user_id

  5.   

    一个好的开始,我想。阅读其他答案中提到的文章,它将教你如何在这里解释的基础知识。

    祝你好运:)

答案 1 :(得分:0)

我认为最好的方法是启动数据建模,首先从ER Diagram开始然后应用normalization理论,这种结构化方法将始终为您提供良好的数据库设计

答案 2 :(得分:0)

You need creat 3 tables 
(example)
1 Users
  id
  login
  username

  (example)
2 Articles
  id
  athor
  title

(example)
**This is type call many to many that mean you user can have many books
Book can have a lot of users 
3 User_and_Articles
  id
  user_id
  article_id** 

  And after you will query from tables User_and_Articles   
 You can ask Like what does user have books  like this 

$sql =   "SELECT * FROM   User_and_Articles  WHERE user_id  = Users.id";

$sql - in this sql you will have all books id

答案 3 :(得分:0)

我建议:

a)阅读http://en.wikipedia.org/wiki/Database_normalization
b)将您的桌子设计为标准化到极端 c)让您的应用程序运行并测试,即所有最后几分钟的更改都在;-)
d)然后根据需要分析你的sql查询和去规范化。