【问题标题】:Suggestion for marketplace db schema市场数据库架构的建议
【发布时间】:2015-06-18 09:54:42
【问题描述】:

我将开始在一个满足家庭相关需求的市场上工作,我需要您的建议来构建更好、更高效的数据库架构。

目前我正在计划...

tbl_managers (id, username, password, email, created_at)
tbl_states(id, state)
tbl_cities(id, state_id)
tbl_profile(id, created_at, manager_id, city_id)
tbl_painters (id, name, address, profile_id, created_at) 
tbl_mechanics(id, name, address, profile_id, created_at)
tbl_reviews(id, profile_id, comment)

上面的方法是正确的还是我应该像下面这样......

tbl_managers (id, username, password, email, created_at)
tbl_states(id, state)
tbl_cities(id, state_id)
tbl_painters (id, name, address, manager_id, city_id, created_at) 
tbl_mechanics(id, name, address, manager_id, city_id, created_at)
tbl_painters_reviews(id, painter_id, comment)
tbl_mechanics_reviews(id, mechanic_id, comment)

请建议最佳方法。

【问题讨论】:

    标签: mysql database database-design schema


    【解决方案1】:

    我认为要为您的问题提供适当的答案并不容易。 你有数据库设计经验吗?您应该查看关系数据库并规范化您的数据库。您应该对您的想法进行思维导图并在其之上创建一个数据库模式。在这一步之后,您应该完成规范化数据库的前 3 个步骤。这包括拆分表以避免异常。

    始终建议在尝试创建改进的数据库模式之前研究现有的数据库模式。在从头开始创建一个新的之前,请确保您知道自己想要改进什么(您可能会花费大量时间来“自己发明一切”)

    如果您对表格布局有具体问题 - 请随时在 stackoverflow 上提问。

    最好的问候 克

    【讨论】:

    • 是的,我有 db 的基本结构,但是由于这个项目更大并且需要很多表,所以我决定接受一个建议。
    • 我们不知道您的市场的功能背景。您应该能够将您的机械师和画家放入一个表(例如:tbl_worker)中,该表具有一个特定的标志/列,该标志/列引用另一个包含所有类型工人的表。这应该是进一步设计的常规。考虑到这一点,您可以使用更多类型的工作人员来扩展您的数据库,而无需操作数据库模型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多