2015-09-10 53 views
0

我需要专家的建议,我应该如何去数据库设计?MySql,多个或不同的数据库? 1搜索引擎

我正在制作一个电子商务网站平台,里面有不同的电子商务网站。

1)简单地理解你可以说,父母的网站是一个网站注册商,并将制作新的儿童网站。

2)父网站将为子网站选择前端模板。

3)每个孩子的网站将是完整的电子商务网站。

4)将只有一个后端(管理端)模板,它将使用登录详细信息(用户名和电子邮件地址)提取特定的子网站数据。

5)家长网站还有一个产品搜索引擎,它将从所有儿童网站(每个儿童都有该产品)中提取并显示所需的产品。

6)每个小孩网站的管理员端都会有一个备份他们的数据和下载的选项。

现在,我需要知道,哪一个更好的决定,要么为每个孩子创建不同的数据库?或使用相同的数据库?而且这在性能上也会更好。

请给我建议,设计我的数据库和表。

感谢提前百万!

回答

0

可以将MySQL的不同databases(或模式)配置为拥有不同的数据库用户及其权限和密码等。因此,如果您打算让不同的网站管理员在数据库级别访问其网站,最简单的方法是创建多个数据库。

对于那些搜索所有数据库的操作,这是一个缺点。

另一种方式是拥有一个真正完整的应用程序并完全封装数据库,但是您必须通过自己实现整个角色系统和权限检查和安全性,并且不会犯任何错误(SQL注入等)。

性能应该没有差别,你也可以加入不同的数据库。

+0

非常感谢您的回复..我现在专注于单一数据库。虽然这需要我的时间,并且会很困难,因为我必须更多地关注安全检查。而且我会很小心,我不会犯任何错误..! :) 再次感谢。 –

+0

然后,你应该给大多数表一个列client_id,并且“行级备份”必须由你通过csv/json下载/上传进行编程。它需要一些工作来让客户端在应用程序中而不是数据库中分离,但它也具有更多的灵活性。所以你必须编写更多的代码,但获得更多的自由。然后小心客户端分离,以便一个客户端不能简单地修改URL并获得其他产品!每个请求都需要确保所请求的“实体”(产品,客户等)适合正确的客户。 – flaschenpost

+0

是的,你的建议是说我的模式设计! :)。说实话我从来没有做过行级别的备份我正在考虑为以后的帮助,但我想这应该更好,如果我知道之前我完全设计我的架构可能需要改变我的架构设计。你有任何教程链接或任何参考,我可以学习吗?或canu指导我呢?谢谢..! –

0

建议:

您可以使用下面的方法,如果适合你 -

保持单一数据库为您的生产表。

如果您的项目中需要日志表,请将所有日志表保存在不同的数据库中。

单独的表项目/网站通过如表名前缀明智将启动项目1和prj2_table_name prj1_table_name项目2

按我假设你想保持引擎InnoDB的。

因此,请将innodb_file_per_table保存在您的配置文件中。

效益:

  1. 你能避免同类喜欢你的每个项目数据的口是心非可能有一个用户表。

  2. 如果您使用不同的数据库,那么您需要在所有数据库中插入一个用户,或者您需要假定一个主数据库可以保留用户表。

  3. 如果你把你的用户表中的所有DB对不同网站/项目不同,要检查所有用户的详细信息/数等等,那么你必须使用工会等

  4. 为了保持不同日志数据库,您可以轻松地清除该数据库中的所有数据,并且由于只需要日志数据库结构,因此备份将变得简单和简短。

这些是我在这里提到的几个好处。进一步它将取决于你的实际需求。

+0

感谢您的建议,但我想我没有得到你的观点4(DATABACKUP)和是的我现在专注于单数据库,因为我正在做的是说它会像shopify.com,但差异是父站点也将成为一个电子商务网站,并将有搜索引擎,将从所有曾经拥有它的孩子中提取所要求的产品结果。 (在我上面有关父母和孩子网站的问题中定义的),所以为了搜索所有子网站,对于我来说,单个数据库比较容易(我不知道是否有任何方法可以搜索所有数据库)。 –

+0

还有一件事要问,有没有像行级别的数据备份?由于每个小站都可以备份数据并下载,实际上我还没有面对这种需求,所以有点困惑或者可能缺乏相关知识。再次感谢 –

+0

行级备份和你想达到的目标是什么意思。 –