我正在构建一个可以保存实体的数据库,例如:订单,购物车,客户等。
所有这些表共享一些常见属性,例如:日期,用于创建新元素的用户代理以及客户端的IP地址。
创建一个存储这些公共属性的单独表会被视为“ok”:
log_id | log_date_added | user_agent_id | ipaddress
然后,字段log_id
将添加到表格订单,购物车,客户等中。
我首先担心的是,我必须在日志表上进行JOIN操作,以获取任何订单创建,购物车创建或客户创建的日期。
我的第二个担心是,日志表变得越大,在检索需要它的任何实体的日期,用户代理,ipaddress时对性能的影响就越大。
与此同时,我觉得在所有需要这些信息的表格中添加字段date_added
,user_agent_id
,ip_address
会非常多余。
非常欢迎任何关于此事的最佳实践建议,谢谢
答案 0 :(得分:0)
我说两种选择都是可能的,但我个人的偏好只是将其保存在表格中。
它并不是真正多余的,因为您存储的信息是不同的数据,它恰好具有相同的形式并且有些相似。
一般规则是,如果表之间的关系是一对一的(在这种情况下是这样),则应将其保存在一个表中,而不是将其分成两个。
总结:
P.S。您可以使用TimeStamp列并让数据库在创建
时自动输入TimeStamp