履歴に「地下鉄代々木上原」か「小田急代々木上原」かをどう書き分けているのか話題になっています。そもそも、履歴とはなんでしょう?
これは、単にユーザー見せるための情報であって、運賃計算は非公開のエリアに設定された情報で行って、下車時に結果を転記していると想像します。
(Suicaシステムの仕事をしている人にSuicaカード情報はアクセスを一般公開している領域と内部処理で使う非公開領域があると聞いたことがある、定期区間乗車のみや、下車する前には、履歴には何も入らないことから推測)

そうなると、代々木上原乗車時には、乗車駅情報に「地下鉄代々木上原」と「小田急代々木上原」の両方の駅コードを入力、下車駅で運賃データベースで「地下鉄代々木上原」
からの運賃を採用すれば乗車駅は「地下鉄代々木上原」、「小田急代々木上原」からの運賃を採用すれば乗車駅は「小田急代々木上原」とし、下車時に履歴エリアに乗車駅を書き込めば対応できる話です。

明大前の運賃データベースには
乗車駅       運賃    乗り継ぎ駅
地下鉄代々木上原  402   新宿三丁目
地下鉄代々木上原  402   小川町
小田急代々木上原  228   (無し)  
東北沢       526   新宿三丁目  
東北沢       526   小川町
東北沢       228   (無し)
と書いてあると予想。乗り継ぎ駅記録ONならば、最初の乗車駅から算出した運賃をと乗り継ぎ時の引き落とし済み額減算して下車時に引き落としで成立。
乗り継ぎ駅よって、運賃が変わるケース(例:鶴見市場−京急−八丁畷−JR−亀有と鶴見市場ー京急、都営ー日本橋ー東西線−大手町−千代田線、常磐線−亀有)に備えて、乗り継ぎ駅毎に運賃データベースは必要)